summaryrefslogtreecommitdiff
path: root/spec/frontend/security_configuration/components/feature_card_badge_spec.js
blob: dcde0808fa4f5c3b4233731468d2dba786ce03ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import { mount } from '@vue/test-utils';
import { GlBadge, GlTooltip } from '@gitlab/ui';
import { extendedWrapper } from 'helpers/vue_test_utils_helper';
import FeatureCardBadge from '~/security_configuration/components/feature_card_badge.vue';

describe('Feature card badge component', () => {
  let wrapper;

  const createComponent = (propsData) => {
    wrapper = extendedWrapper(
      mount(FeatureCardBadge, {
        propsData,
      }),
    );
  };

  const findTooltip = () => wrapper.findComponent(GlTooltip);
  const findBadge = () => wrapper.findComponent(GlBadge);

  describe('tooltip render', () => {
    describe.each`
      context                                             | badge                                         | badgeHref
      ${'href on a badge object'}                         | ${{ tooltipText: 'test', badgeHref: 'href' }} | ${undefined}
      ${'href as property '}                              | ${{ tooltipText: null, badgeHref: '' }}       | ${'link'}
      ${'default href no property on badge or component'} | ${{ tooltipText: null, badgeHref: '' }}       | ${undefined}
    `('given $context', ({ badge, badgeHref }) => {
      beforeEach(() => {
        createComponent({ badge, badgeHref });
      });

      it('should show badge when badge given in configuration and available', () => {
        expect(findTooltip().exists()).toBe(Boolean(badge && badge.tooltipText));
      });

      it('should render correct link if link is provided', () => {
        expect(findBadge().attributes().href).toEqual(badgeHref);
      });
    });
  });
});