diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-15 12:09:03 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-15 12:09:03 +0300 |
commit | 73ff43129b98d433923d144fccd2e47c33c3b091 (patch) | |
tree | 8dc7ffe90e38bb0699c3ff48f1d89b1b354e8ef3 /spec/frontend/members | |
parent | 17e561ffb82d134ccdee8dfb505d9cba7c311a4c (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/members')
4 files changed, 32 insertions, 5 deletions
diff --git a/spec/frontend/members/components/action_buttons/remove_member_button_spec.js b/spec/frontend/members/components/action_buttons/remove_member_button_spec.js index bac3cd1029d..4ff12f7fa97 100644 --- a/spec/frontend/members/components/action_buttons/remove_member_button_spec.js +++ b/spec/frontend/members/components/action_buttons/remove_member_button_spec.js @@ -38,6 +38,7 @@ describe('RemoveMemberButton', () => { title: 'Remove member', isAccessRequest: true, isInvite: true, + oncallSchedules: { name: 'user', schedules: [] }, ...propsData, }, directives: { @@ -59,6 +60,7 @@ describe('RemoveMemberButton', () => { 'data-message': 'Are you sure you want to remove John Smith?', 'data-is-access-request': 'true', 'data-is-invite': 'true', + 'data-oncall-schedules': '{"name":"user","schedules":[]}', 'aria-label': 'Remove member', title: 'Remove member', icon: 'remove', diff --git a/spec/frontend/members/components/action_buttons/user_action_buttons_spec.js b/spec/frontend/members/components/action_buttons/user_action_buttons_spec.js index 2f13c436fd9..0aa3780f030 100644 --- a/spec/frontend/members/components/action_buttons/user_action_buttons_spec.js +++ b/spec/frontend/members/components/action_buttons/user_action_buttons_spec.js @@ -40,11 +40,15 @@ describe('UserActionButtons', () => { expect(findRemoveMemberButton().props()).toEqual({ memberId: member.id, memberType: 'GroupMember', - message: `Are you sure you want to remove ${member.user.name} from "${member.source.fullName}"`, + message: `Are you sure you want to remove ${member.user.name} from "${member.source.fullName}"?`, title: 'Remove member', isAccessRequest: false, isInvite: false, icon: 'remove', + oncallSchedules: { + name: member.user.name, + schedules: member.user.oncallSchedules, + }, }); }); @@ -58,7 +62,7 @@ describe('UserActionButtons', () => { }); expect(findRemoveMemberButton().props('message')).toBe( - `Are you sure you want to remove this orphaned member from "${orphanedMember.source.fullName}"`, + `Are you sure you want to remove this orphaned member from "${orphanedMember.source.fullName}"?`, ); }); }); diff --git a/spec/frontend/members/components/modals/leave_modal_spec.js b/spec/frontend/members/components/modals/leave_modal_spec.js index 824e169f096..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, 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' })); @@ -47,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)); @@ -87,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'); diff --git a/spec/frontend/members/mock_data.js b/spec/frontend/members/mock_data.js index 5a2c6d560c0..a47b7ab2118 100644 --- a/spec/frontend/members/mock_data.js +++ b/spec/frontend/members/mock_data.js @@ -20,6 +20,7 @@ export const member = { avatarUrl: 'https://www.gravatar.com/avatar/4816142ef496f956a277bedf1a40607b?s=80&d=identicon', blocked: false, twoFactorEnabled: false, + oncallSchedules: [{ name: 'schedule 1' }], }, id: 238, createdAt: '2020-07-17T16:22:46.923Z', |