From 7e9c479f7de77702622631cff2628a9c8dcbc627 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 19 Nov 2020 08:27:35 +0000 Subject: Add latest changes from gitlab-org/gitlab@13-6-stable-ee --- .../components/service_desk_root_spec.js | 76 +++++----------------- .../components/service_desk_setting_spec.js | 44 ++++++++++++- .../services/service_desk_service_spec.js | 18 ----- 3 files changed, 58 insertions(+), 80 deletions(-) (limited to 'spec/frontend/projects/settings_service_desk') diff --git a/spec/frontend/projects/settings_service_desk/components/service_desk_root_spec.js b/spec/frontend/projects/settings_service_desk/components/service_desk_root_spec.js index 62aeb4ddee5..7e74a5deee1 100644 --- a/spec/frontend/projects/settings_service_desk/components/service_desk_root_spec.js +++ b/spec/frontend/projects/settings_service_desk/components/service_desk_root_spec.js @@ -1,7 +1,8 @@ -import { shallowMount, mount } from '@vue/test-utils'; +import { mount } from '@vue/test-utils'; import AxiosMockAdapter from 'axios-mock-adapter'; import waitForPromises from 'helpers/wait_for_promises'; import ServiceDeskRoot from '~/projects/settings_service_desk/components/service_desk_root.vue'; +import ServiceDeskSetting from '~/projects/settings_service_desk/components/service_desk_setting.vue'; import axios from '~/lib/utils/axios_utils'; import httpStatusCodes from '~/lib/utils/http_status'; @@ -24,65 +25,6 @@ describe('ServiceDeskRoot', () => { } }); - it('fetches incoming email when there is no incoming email provided', () => { - axiosMock.onGet(endpoint).replyOnce(httpStatusCodes.OK); - - wrapper = shallowMount(ServiceDeskRoot, { - propsData: { - initialIsEnabled: true, - initialIncomingEmail: '', - endpoint, - }, - }); - - return wrapper.vm - .$nextTick() - .then(waitForPromises) - .then(() => { - expect(axiosMock.history.get).toHaveLength(1); - }); - }); - - it('does not fetch incoming email when there is an incoming email provided', () => { - axiosMock.onGet(endpoint).replyOnce(httpStatusCodes.OK); - - wrapper = shallowMount(ServiceDeskRoot, { - propsData: { - initialIsEnabled: true, - initialIncomingEmail, - endpoint, - }, - }); - - return wrapper.vm - .$nextTick() - .then(waitForPromises) - .then(() => { - expect(axiosMock.history.get).toHaveLength(0); - }); - }); - - it('shows an error message when incoming email is not fetched correctly', () => { - axiosMock.onGet(endpoint).networkError(); - - wrapper = shallowMount(ServiceDeskRoot, { - propsData: { - initialIsEnabled: true, - initialIncomingEmail: '', - endpoint, - }, - }); - - return wrapper.vm - .$nextTick() - .then(waitForPromises) - .then(() => { - expect(wrapper.html()).toContain( - 'An error occurred while fetching the Service Desk address.', - ); - }); - }); - it('sends a request to toggle service desk off when the toggle is clicked from the on state', () => { axiosMock.onPut(endpoint).replyOnce(httpStatusCodes.OK); @@ -221,4 +163,18 @@ describe('ServiceDeskRoot', () => { expect(wrapper.html()).toContain('An error occured while making the changes:'); }); }); + + it('passes customEmail through updatedCustomEmail correctly', () => { + const customEmail = 'foo'; + + wrapper = mount(ServiceDeskRoot, { + propsData: { + initialIsEnabled: true, + endpoint, + customEmail, + }, + }); + + expect(wrapper.find(ServiceDeskSetting).props('customEmail')).toEqual(customEmail); + }); }); diff --git a/spec/frontend/projects/settings_service_desk/components/service_desk_setting_spec.js b/spec/frontend/projects/settings_service_desk/components/service_desk_setting_spec.js index cb46751f66a..173a7fc4e11 100644 --- a/spec/frontend/projects/settings_service_desk/components/service_desk_setting_spec.js +++ b/spec/frontend/projects/settings_service_desk/components/service_desk_setting_spec.js @@ -13,6 +13,7 @@ describe('ServiceDeskSetting', () => { }); const findTemplateDropdown = () => wrapper.find('#service-desk-template-select'); + const findIncomingEmail = () => wrapper.find('[data-testid="incoming-email"]'); describe('when isEnabled=true', () => { describe('only isEnabled', () => { @@ -35,7 +36,7 @@ describe('ServiceDeskSetting', () => { it('should see loading spinner and not the incoming email', () => { expect(wrapper.find(GlLoadingIcon).exists()).toBe(true); - expect(wrapper.find('.incoming-email').exists()).toBe(false); + expect(findIncomingEmail().exists()).toBe(false); }); }); }); @@ -73,7 +74,7 @@ describe('ServiceDeskSetting', () => { }); it('should see email and not the loading spinner', () => { - expect(wrapper.find('.incoming-email').element.value).toEqual(incomingEmail); + expect(findIncomingEmail().element.value).toEqual(incomingEmail); expect(wrapper.find(GlLoadingIcon).exists()).toBe(false); }); @@ -85,6 +86,45 @@ describe('ServiceDeskSetting', () => { }); }); + describe('with customEmail', () => { + describe('customEmail is different than incomingEmail', () => { + const incomingEmail = 'foo@bar.com'; + const customEmail = 'custom@bar.com'; + + beforeEach(() => { + wrapper = mount(ServiceDeskSetting, { + propsData: { + isEnabled: true, + incomingEmail, + customEmail, + }, + }); + }); + + it('should see custom email', () => { + expect(findIncomingEmail().element.value).toEqual(customEmail); + }); + }); + + describe('customEmail is the same as incomingEmail', () => { + const email = 'foo@bar.com'; + + beforeEach(() => { + wrapper = mount(ServiceDeskSetting, { + propsData: { + isEnabled: true, + incomingEmail: email, + customEmail: email, + }, + }); + }); + + it('should see custom email', () => { + expect(findIncomingEmail().element.value).toEqual(email); + }); + }); + }); + describe('templates dropdown', () => { it('renders a dropdown to choose a template', () => { wrapper = shallowMount(ServiceDeskSetting, { diff --git a/spec/frontend/projects/settings_service_desk/services/service_desk_service_spec.js b/spec/frontend/projects/settings_service_desk/services/service_desk_service_spec.js index f9e4d55245a..3b960a95db4 100644 --- a/spec/frontend/projects/settings_service_desk/services/service_desk_service_spec.js +++ b/spec/frontend/projects/settings_service_desk/services/service_desk_service_spec.js @@ -19,24 +19,6 @@ describe('ServiceDeskService', () => { axiosMock.restore(); }); - describe('fetchIncomingEmail', () => { - it('makes a request to fetch incoming email', () => { - axiosMock.onGet(endpoint).replyOnce(httpStatusCodes.OK, dummyResponse); - - return service.fetchIncomingEmail().then(response => { - expect(response.data).toEqual(dummyResponse); - }); - }); - - it('fails on error response', () => { - axiosMock.onGet(endpoint).networkError(); - - return service.fetchIncomingEmail().catch(error => { - expect(error.message).toBe(errorMessage); - }); - }); - }); - describe('toggleServiceDesk', () => { it('makes a request to set service desk', () => { axiosMock.onPut(endpoint).replyOnce(httpStatusCodes.OK, dummyResponse); -- cgit v1.2.3