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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-10-19 15:57:54 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-10-19 15:57:54 +0300
commit419c53ec62de6e97a517abd5fdd4cbde3a942a34 (patch)
tree1f43a548b46bca8a5fb8fe0c31cef1883d49c5b6 /spec/frontend/merge_requests/components/merge_request_header_spec.js
parent1da20d9135b3ad9e75e65b028bffc921aaf8deb7 (diff)
Add latest changes from gitlab-org/gitlab@16-5-stable-eev16.5.0-rc42
Diffstat (limited to 'spec/frontend/merge_requests/components/merge_request_header_spec.js')
-rw-r--r--spec/frontend/merge_requests/components/merge_request_header_spec.js88
1 files changed, 88 insertions, 0 deletions
diff --git a/spec/frontend/merge_requests/components/merge_request_header_spec.js b/spec/frontend/merge_requests/components/merge_request_header_spec.js
new file mode 100644
index 00000000000..3f774098379
--- /dev/null
+++ b/spec/frontend/merge_requests/components/merge_request_header_spec.js
@@ -0,0 +1,88 @@
+import { shallowMount } from '@vue/test-utils';
+import HiddenBadge from '~/issuable/components/hidden_badge.vue';
+import LockedBadge from '~/issuable/components/locked_badge.vue';
+import StatusBadge from '~/issuable/components/status_badge.vue';
+import MergeRequestHeader from '~/merge_requests/components/merge_request_header.vue';
+import mrStore from '~/mr_notes/stores';
+import ConfidentialityBadge from '~/vue_shared/components/confidentiality_badge.vue';
+
+jest.mock('~/mr_notes/stores', () => jest.requireActual('helpers/mocks/mr_notes/stores'));
+
+describe('MergeRequestHeader component', () => {
+ let wrapper;
+
+ const findConfidentialBadge = () => wrapper.findComponent(ConfidentialityBadge);
+ const findLockedBadge = () => wrapper.findComponent(LockedBadge);
+ const findHiddenBadge = () => wrapper.findComponent(HiddenBadge);
+ const findStatusBadge = () => wrapper.findComponent(StatusBadge);
+
+ const renderTestMessage = (renders) => (renders ? 'renders' : 'does not render');
+
+ const createComponent = ({ confidential, hidden, locked }) => {
+ const store = mrStore;
+ store.getters.getNoteableData = {};
+ store.getters.getNoteableData.confidential = confidential;
+ store.getters.getNoteableData.discussion_locked = locked;
+ store.getters.getNoteableData.targetType = 'merge_request';
+
+ wrapper = shallowMount(MergeRequestHeader, {
+ mocks: {
+ $store: store,
+ },
+ provide: {
+ hidden,
+ },
+ propsData: {
+ initialState: 'opened',
+ },
+ });
+ };
+
+ it('renders status badge', () => {
+ createComponent({ propsData: { initialState: 'opened' } });
+
+ expect(findStatusBadge().props()).toEqual({
+ issuableType: 'merge_request',
+ state: 'opened',
+ });
+ });
+
+ describe.each`
+ locked | confidential | hidden
+ ${true} | ${true} | ${false}
+ ${true} | ${false} | ${false}
+ ${false} | ${true} | ${false}
+ ${false} | ${false} | ${false}
+ ${true} | ${true} | ${true}
+ ${true} | ${false} | ${true}
+ ${false} | ${true} | ${true}
+ ${false} | ${false} | ${true}
+ `(
+ `when locked=$locked, confidential=$confidential, and hidden=$hidden`,
+ ({ locked, confidential, hidden }) => {
+ beforeEach(() => {
+ createComponent({ confidential, hidden, locked });
+ });
+
+ it(`${renderTestMessage(confidential)} the confidential badge`, () => {
+ const confidentialBadge = findConfidentialBadge();
+ expect(confidentialBadge.exists()).toBe(confidential);
+
+ if (confidential && !hidden) {
+ expect(confidentialBadge.props()).toMatchObject({
+ workspaceType: 'project',
+ issuableType: 'issue',
+ });
+ }
+ });
+
+ it(`${renderTestMessage(locked)} the locked badge`, () => {
+ expect(findLockedBadge().exists()).toBe(locked);
+ });
+
+ it(`${renderTestMessage(hidden)} the hidden badge`, () => {
+ expect(findHiddenBadge().exists()).toBe(hidden);
+ });
+ },
+ );
+});