Welcome to mirror list, hosted at ThFree Co, Russian Federation.

status_badge_spec.js « components « issuable « frontend « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: cdc848626c7d92365d33cb572f54a81829015d2e (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
41
42
43
import { GlBadge, GlIcon } from '@gitlab/ui';
import { shallowMount } from '@vue/test-utils';
import StatusBadge from '~/issuable/components/status_badge.vue';

describe('StatusBadge component', () => {
  let wrapper;

  const mountComponent = (propsData) => {
    wrapper = shallowMount(StatusBadge, { propsData });
  };

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

  describe.each`
    issuableType       | badgeText   | state       | badgeVariant | badgeIcon
    ${'merge_request'} | ${'Open'}   | ${'opened'} | ${'success'} | ${'merge-request-open'}
    ${'merge_request'} | ${'Closed'} | ${'closed'} | ${'danger'}  | ${'merge-request-close'}
    ${'merge_request'} | ${'Merged'} | ${'merged'} | ${'info'}    | ${'merge'}
    ${'issue'}         | ${'Open'}   | ${'opened'} | ${'success'} | ${'issues'}
    ${'issue'}         | ${'Closed'} | ${'closed'} | ${'info'}    | ${'issue-closed'}
    ${'epic'}          | ${'Open'}   | ${'opened'} | ${'success'} | ${'epic'}
    ${'epic'}          | ${'Closed'} | ${'closed'} | ${'info'}    | ${'epic-closed'}
  `(
    'when issuableType=$issuableType and state=$state',
    ({ issuableType, badgeText, state, badgeVariant, badgeIcon }) => {
      beforeEach(() => {
        mountComponent({ state, issuableType });
      });

      it(`renders badge with text '${badgeText}'`, () => {
        expect(findBadge().text()).toBe(badgeText);
      });

      it(`sets badge variant as '${badgeVariant}`, () => {
        expect(findBadge().props('variant')).toBe(badgeVariant);
      });

      it(`sets badge icon as '${badgeIcon}'`, () => {
        expect(findBadge().findComponent(GlIcon).props('name')).toBe(badgeIcon);
      });
    },
  );
});