summaryrefslogtreecommitdiff
path: root/spec/frontend/vue_shared/components/confidentiality_badge_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/vue_shared/components/confidentiality_badge_spec.js')
-rw-r--r--spec/frontend/vue_shared/components/confidentiality_badge_spec.js52
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');
+ },
+ );
+});