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:
Diffstat (limited to 'spec/frontend/invite_members/components/invite_members_modal_spec.js')
-rw-r--r--spec/frontend/invite_members/components/invite_members_modal_spec.js87
1 files changed, 69 insertions, 18 deletions
diff --git a/spec/frontend/invite_members/components/invite_members_modal_spec.js b/spec/frontend/invite_members/components/invite_members_modal_spec.js
index 0be0fbbde2d..4ac2a28105c 100644
--- a/spec/frontend/invite_members/components/invite_members_modal_spec.js
+++ b/spec/frontend/invite_members/components/invite_members_modal_spec.js
@@ -3,24 +3,31 @@ import { GlDropdown, GlDropdownItem, GlDatepicker, GlSprintf, GlLink } from '@gi
import Api from '~/api';
import InviteMembersModal from '~/invite_members/components/invite_members_modal.vue';
-const groupId = '1';
-const groupName = 'testgroup';
+const id = '1';
+const name = 'testgroup';
+const isProject = false;
const accessLevels = { Guest: 10, Reporter: 20, Developer: 30, Maintainer: 40, Owner: 50 };
const defaultAccessLevel = '10';
const helpLink = 'https://example.com';
-const createComponent = () => {
+const createComponent = (data = {}) => {
return shallowMount(InviteMembersModal, {
propsData: {
- groupId,
- groupName,
+ id,
+ name,
+ isProject,
accessLevels,
defaultAccessLevel,
helpLink,
},
+ data() {
+ return data;
+ },
stubs: {
- GlSprintf,
'gl-modal': '<div><slot name="modal-footer"></slot><slot></slot></div>',
+ 'gl-dropdown': true,
+ 'gl-dropdown-item': true,
+ GlSprintf,
},
});
};
@@ -34,7 +41,7 @@ describe('InviteMembersModal', () => {
});
const findDropdown = () => wrapper.find(GlDropdown);
- const findDropdownItems = () => wrapper.findAll(GlDropdownItem);
+ const findDropdownItems = () => findDropdown().findAll(GlDropdownItem);
const findDatepicker = () => wrapper.find(GlDatepicker);
const findLink = () => wrapper.find(GlLink);
const findCancelButton = () => wrapper.find({ ref: 'cancelButton' });
@@ -88,25 +95,69 @@ describe('InviteMembersModal', () => {
format: 'json',
};
- beforeEach(() => {
- wrapper = createComponent();
+ describe('when the invite was sent successfully', () => {
+ beforeEach(() => {
+ wrapper = createComponent();
+
+ wrapper.vm.$toast = { show: jest.fn() };
+ jest.spyOn(Api, 'inviteGroupMember').mockResolvedValue({ data: postData });
- jest.spyOn(Api, 'inviteGroupMember').mockResolvedValue({ data: postData });
- wrapper.vm.$toast = { show: jest.fn() };
+ wrapper.vm.submitForm(postData);
+ });
- wrapper.vm.submitForm(postData);
+ it('displays the successful toastMessage', () => {
+ const toastMessageSuccessful = 'Members were successfully added';
+
+ expect(wrapper.vm.$toast.show).toHaveBeenCalledWith(
+ toastMessageSuccessful,
+ wrapper.vm.toastOptions,
+ );
+ });
+
+ it('calls Api inviteGroupMember with the correct params', () => {
+ expect(Api.inviteGroupMember).toHaveBeenCalledWith(id, postData);
+ });
});
- it('calls Api inviteGroupMember with the correct params', () => {
- expect(Api.inviteGroupMember).toHaveBeenCalledWith(groupId, postData);
+ describe('when sending the invite for a single member returned an api error', () => {
+ const apiErrorMessage = 'Members already exists';
+
+ beforeEach(() => {
+ wrapper = createComponent({ newUsersToInvite: '123' });
+
+ wrapper.vm.$toast = { show: jest.fn() };
+ jest
+ .spyOn(Api, 'inviteGroupMember')
+ .mockRejectedValue({ response: { data: { message: apiErrorMessage } } });
+
+ findInviteButton().vm.$emit('click');
+ });
+
+ it('displays the api error message for the toastMessage', () => {
+ expect(wrapper.vm.$toast.show).toHaveBeenCalledWith(
+ apiErrorMessage,
+ wrapper.vm.toastOptions,
+ );
+ });
});
- describe('when the invite was sent successfully', () => {
- const toastMessageSuccessful = 'Users were succesfully added';
+ describe('when sending the invite for multiple members returned any error', () => {
+ const genericErrorMessage = 'Some of the members could not be added';
- it('displays the successful toastMessage', () => {
+ beforeEach(() => {
+ wrapper = createComponent({ newUsersToInvite: '123' });
+
+ wrapper.vm.$toast = { show: jest.fn() };
+ jest
+ .spyOn(Api, 'inviteGroupMember')
+ .mockRejectedValue({ response: { data: { success: false } } });
+
+ findInviteButton().vm.$emit('click');
+ });
+
+ it('displays the expected toastMessage', () => {
expect(wrapper.vm.$toast.show).toHaveBeenCalledWith(
- toastMessageSuccessful,
+ genericErrorMessage,
wrapper.vm.toastOptions,
);
});