summaryrefslogtreecommitdiff
path: root/spec/frontend/members/components/modals/leave_modal_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/members/components/modals/leave_modal_spec.js')
-rw-r--r--spec/frontend/members/components/modals/leave_modal_spec.js42
1 files changed, 35 insertions, 7 deletions
diff --git a/spec/frontend/members/components/modals/leave_modal_spec.js b/spec/frontend/members/components/modals/leave_modal_spec.js
index 2d52911572f..ea9eb7bf923 100644
--- a/spec/frontend/members/components/modals/leave_modal_spec.js
+++ b/spec/frontend/members/components/modals/leave_modal_spec.js
@@ -1,10 +1,12 @@
import { GlModal, GlForm } from '@gitlab/ui';
import { within } from '@testing-library/dom';
import { mount, createLocalVue, createWrapper } from '@vue/test-utils';
+import { cloneDeep } from 'lodash';
import { nextTick } from 'vue';
import Vuex from 'vuex';
import LeaveModal from '~/members/components/modals/leave_modal.vue';
-import { LEAVE_MODAL_ID } from '~/members/constants';
+import { LEAVE_MODAL_ID, MEMBER_TYPES } from '~/members/constants';
+import OncallSchedulesList from '~/vue_shared/components/oncall_schedules_list.vue';
import { member } from '../../mock_data';
jest.mock('~/lib/utils/csrf', () => ({ token: 'mock-csrf-token' }));
@@ -17,9 +19,14 @@ describe('LeaveModal', () => {
const createStore = (state = {}) => {
return new Vuex.Store({
- state: {
- memberPath: '/groups/foo-bar/-/group_members/:id',
- ...state,
+ modules: {
+ [MEMBER_TYPES.user]: {
+ namespaced: true,
+ state: {
+ memberPath: '/groups/foo-bar/-/group_members/:id',
+ ...state,
+ },
+ },
},
});
};
@@ -28,6 +35,9 @@ describe('LeaveModal', () => {
wrapper = mount(LeaveModal, {
localVue,
store: createStore(state),
+ provide: {
+ namespace: MEMBER_TYPES.user,
+ },
propsData: {
member,
...propsData,
@@ -39,9 +49,9 @@ describe('LeaveModal', () => {
});
};
- const findModal = () => wrapper.find(GlModal);
-
- const findForm = () => findModal().find(GlForm);
+ const findModal = () => wrapper.findComponent(GlModal);
+ const findForm = () => findModal().findComponent(GlForm);
+ const findOncallSchedulesList = () => findModal().findComponent(OncallSchedulesList);
const getByText = (text, options) =>
createWrapper(within(findModal().element).getByText(text, options));
@@ -79,6 +89,24 @@ describe('LeaveModal', () => {
);
});
+ describe('On-call schedules list', () => {
+ it("displays oncall schedules list when member's user is part of on-call schedules ", () => {
+ const schedulesList = findOncallSchedulesList();
+ expect(schedulesList.exists()).toBe(true);
+ expect(schedulesList.props()).toMatchObject({
+ isCurrentUser: true,
+ schedules: member.user.oncallSchedules,
+ });
+ });
+
+ it("does NOT display oncall schedules list when member's user is NOT a part of on-call schedules ", () => {
+ const memberWithoutOncallSchedules = cloneDeep(member);
+ delete (memberWithoutOncallSchedules, 'user.oncallSchedules');
+ createComponent({ member: memberWithoutOncallSchedules });
+ expect(findOncallSchedulesList().exists()).toBe(false);
+ });
+ });
+
it('submits the form when "Leave" button is clicked', () => {
const submitSpy = jest.spyOn(findForm().element, 'submit');