diff options
Diffstat (limited to 'spec/frontend/vue_shared/components/confidentiality_badge_spec.js')
-rw-r--r-- | spec/frontend/vue_shared/components/confidentiality_badge_spec.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/spec/frontend/vue_shared/components/confidentiality_badge_spec.js b/spec/frontend/vue_shared/components/confidentiality_badge_spec.js new file mode 100644 index 00000000000..9d11fbbaf55 --- /dev/null +++ b/spec/frontend/vue_shared/components/confidentiality_badge_spec.js @@ -0,0 +1,52 @@ +import { GlBadge } from '@gitlab/ui'; + +import { shallowMount } from '@vue/test-utils'; +import { WorkspaceType, IssuableType } from '~/issues/constants'; + +import ConfidentialityBadge from '~/vue_shared/components/confidentiality_badge.vue'; + +const createComponent = ({ + workspaceType = WorkspaceType.project, + issuableType = IssuableType.Issue, +} = {}) => + shallowMount(ConfidentialityBadge, { + propsData: { + workspaceType, + issuableType, + }, + }); + +describe('ConfidentialityBadge', () => { + let wrapper; + + beforeEach(() => { + wrapper = createComponent(); + }); + + afterEach(() => { + wrapper.destroy(); + }); + + it.each` + workspaceType | issuableType | expectedTooltip + ${WorkspaceType.project} | ${IssuableType.Issue} | ${'Only project members with at least Reporter role can view or be notified about this issue.'} + ${WorkspaceType.group} | ${IssuableType.Epic} | ${'Only group members with at least Reporter role can view or be notified about this epic.'} + `( + 'should render gl-badge with correct tooltip when workspaceType is $workspaceType and issuableType is $issuableType', + ({ workspaceType, issuableType, expectedTooltip }) => { + wrapper = createComponent({ + workspaceType, + issuableType, + }); + + const badgeEl = wrapper.findComponent(GlBadge); + + expect(badgeEl.props()).toMatchObject({ + icon: 'eye-slash', + variant: 'warning', + }); + expect(badgeEl.attributes('title')).toBe(expectedTooltip); + expect(badgeEl.text()).toBe('Confidential'); + }, + ); +}); |