diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-30 21:09:38 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-30 21:09:38 +0300 |
commit | 028bb5dda7abc9ec76f21ae8e691825b4673f733 (patch) | |
tree | a41741811452f928c6f650451c69fc18e46b62a4 /spec/javascripts/integrations | |
parent | 7f305b576b51c3503970ef224cf4b31e247a322d (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/javascripts/integrations')
-rw-r--r-- | spec/javascripts/integrations/integration_settings_form_spec.js | 301 |
1 files changed, 0 insertions, 301 deletions
diff --git a/spec/javascripts/integrations/integration_settings_form_spec.js b/spec/javascripts/integrations/integration_settings_form_spec.js deleted file mode 100644 index 72d04be822f..00000000000 --- a/spec/javascripts/integrations/integration_settings_form_spec.js +++ /dev/null @@ -1,301 +0,0 @@ -import $ from 'jquery'; -import MockAdaptor from 'axios-mock-adapter'; -import axios from '~/lib/utils/axios_utils'; -import IntegrationSettingsForm from '~/integrations/integration_settings_form'; - -describe('IntegrationSettingsForm', () => { - const FIXTURE = 'services/edit_service.html'; - preloadFixtures(FIXTURE); - - beforeEach(() => { - loadFixtures(FIXTURE); - }); - - describe('contructor', () => { - let integrationSettingsForm; - - beforeEach(() => { - integrationSettingsForm = new IntegrationSettingsForm('.js-integration-settings-form'); - spyOn(integrationSettingsForm, 'init'); - }); - - it('should initialize form element refs on class object', () => { - // Form Reference - expect(integrationSettingsForm.$form).toBeDefined(); - expect(integrationSettingsForm.$form.prop('nodeName')).toEqual('FORM'); - expect(integrationSettingsForm.formActive).toBeDefined(); - - // Form Child Elements - expect(integrationSettingsForm.$submitBtn).toBeDefined(); - expect(integrationSettingsForm.$submitBtnLoader).toBeDefined(); - expect(integrationSettingsForm.$submitBtnLabel).toBeDefined(); - }); - - it('should initialize form metadata on class object', () => { - expect(integrationSettingsForm.testEndPoint).toBeDefined(); - expect(integrationSettingsForm.canTestService).toBeDefined(); - }); - }); - - describe('toggleServiceState', () => { - let integrationSettingsForm; - - beforeEach(() => { - integrationSettingsForm = new IntegrationSettingsForm('.js-integration-settings-form'); - }); - - it('should remove `novalidate` attribute to form when called with `true`', () => { - integrationSettingsForm.formActive = true; - integrationSettingsForm.toggleServiceState(); - - expect(integrationSettingsForm.$form.attr('novalidate')).not.toBeDefined(); - }); - - it('should set `novalidate` attribute to form when called with `false`', () => { - integrationSettingsForm.formActive = false; - integrationSettingsForm.toggleServiceState(); - - expect(integrationSettingsForm.$form.attr('novalidate')).toBeDefined(); - }); - }); - - describe('toggleSubmitBtnLabel', () => { - let integrationSettingsForm; - - beforeEach(() => { - integrationSettingsForm = new IntegrationSettingsForm('.js-integration-settings-form'); - }); - - it('should set Save button label to "Test settings and save changes" when serviceActive & canTestService are `true`', () => { - integrationSettingsForm.canTestService = true; - integrationSettingsForm.formActive = true; - - integrationSettingsForm.toggleSubmitBtnLabel(); - - expect(integrationSettingsForm.$submitBtnLabel.text()).toEqual( - 'Test settings and save changes', - ); - }); - - it('should set Save button label to "Save changes" when either serviceActive or canTestService (or both) is `false`', () => { - integrationSettingsForm.canTestService = false; - integrationSettingsForm.formActive = false; - - integrationSettingsForm.toggleSubmitBtnLabel(); - - expect(integrationSettingsForm.$submitBtnLabel.text()).toEqual('Save changes'); - - integrationSettingsForm.formActive = true; - - integrationSettingsForm.toggleSubmitBtnLabel(); - - expect(integrationSettingsForm.$submitBtnLabel.text()).toEqual('Save changes'); - - integrationSettingsForm.canTestService = true; - integrationSettingsForm.formActive = false; - - integrationSettingsForm.toggleSubmitBtnLabel(); - - expect(integrationSettingsForm.$submitBtnLabel.text()).toEqual('Save changes'); - }); - }); - - describe('toggleSubmitBtnState', () => { - let integrationSettingsForm; - - beforeEach(() => { - integrationSettingsForm = new IntegrationSettingsForm('.js-integration-settings-form'); - }); - - it('should disable Save button and show loader animation when called with `true`', () => { - integrationSettingsForm.toggleSubmitBtnState(true); - - expect(integrationSettingsForm.$submitBtn.is(':disabled')).toBeTruthy(); - expect(integrationSettingsForm.$submitBtnLoader.hasClass('hidden')).toBeFalsy(); - }); - - it('should enable Save button and hide loader animation when called with `false`', () => { - integrationSettingsForm.toggleSubmitBtnState(false); - - expect(integrationSettingsForm.$submitBtn.is(':disabled')).toBeFalsy(); - expect(integrationSettingsForm.$submitBtnLoader.hasClass('hidden')).toBeTruthy(); - }); - }); - - describe('testSettings', () => { - let integrationSettingsForm; - let formData; - let mock; - - beforeEach(() => { - mock = new MockAdaptor(axios); - - spyOn(axios, 'put').and.callThrough(); - - integrationSettingsForm = new IntegrationSettingsForm('.js-integration-settings-form'); - // eslint-disable-next-line no-jquery/no-serialize - formData = integrationSettingsForm.$form.serialize(); - }); - - afterEach(() => { - mock.restore(); - }); - - it('should make an ajax request with provided `formData`', done => { - integrationSettingsForm - .testSettings(formData) - .then(() => { - expect(axios.put).toHaveBeenCalledWith(integrationSettingsForm.testEndPoint, formData); - - done(); - }) - .catch(done.fail); - }); - - it('should show error Flash with `Save anyway` action if ajax request responds with error in test', done => { - const errorMessage = 'Test failed.'; - mock.onPut(integrationSettingsForm.testEndPoint).reply(200, { - error: true, - message: errorMessage, - service_response: 'some error', - test_failed: true, - }); - - integrationSettingsForm - .testSettings(formData) - .then(() => { - const $flashContainer = $('.flash-container'); - - expect( - $flashContainer - .find('.flash-text') - .text() - .trim(), - ).toEqual('Test failed. some error'); - - expect($flashContainer.find('.flash-action')).toBeDefined(); - expect( - $flashContainer - .find('.flash-action') - .text() - .trim(), - ).toEqual('Save anyway'); - - done(); - }) - .catch(done.fail); - }); - - it('should not show error Flash with `Save anyway` action if ajax request responds with error in validation', done => { - const errorMessage = 'Validations failed.'; - mock.onPut(integrationSettingsForm.testEndPoint).reply(200, { - error: true, - message: errorMessage, - service_response: 'some error', - test_failed: false, - }); - - integrationSettingsForm - .testSettings(formData) - .then(() => { - const $flashContainer = $('.flash-container'); - - expect( - $flashContainer - .find('.flash-text') - .text() - .trim(), - ).toEqual('Validations failed. some error'); - - expect($flashContainer.find('.flash-action')).toBeDefined(); - expect( - $flashContainer - .find('.flash-action') - .text() - .trim(), - ).toEqual(''); - - done(); - }) - .catch(done.fail); - }); - - it('should submit form if ajax request responds without any error in test', done => { - spyOn(integrationSettingsForm.$form, 'submit'); - - mock.onPut(integrationSettingsForm.testEndPoint).reply(200, { - error: false, - }); - - integrationSettingsForm - .testSettings(formData) - .then(() => { - expect(integrationSettingsForm.$form.submit).toHaveBeenCalled(); - - done(); - }) - .catch(done.fail); - }); - - it('should submit form when clicked on `Save anyway` action of error Flash', done => { - spyOn(integrationSettingsForm.$form, 'submit'); - - const errorMessage = 'Test failed.'; - mock.onPut(integrationSettingsForm.testEndPoint).reply(200, { - error: true, - message: errorMessage, - test_failed: true, - }); - - integrationSettingsForm - .testSettings(formData) - .then(() => { - const $flashAction = $('.flash-container .flash-action'); - - expect($flashAction).toBeDefined(); - - $flashAction.get(0).click(); - }) - .then(() => { - expect(integrationSettingsForm.$form.submit).toHaveBeenCalled(); - - done(); - }) - .catch(done.fail); - }); - - it('should show error Flash if ajax request failed', done => { - const errorMessage = 'Something went wrong on our end.'; - - mock.onPut(integrationSettingsForm.testEndPoint).networkError(); - - integrationSettingsForm - .testSettings(formData) - .then(() => { - expect( - $('.flash-container .flash-text') - .text() - .trim(), - ).toEqual(errorMessage); - - done(); - }) - .catch(done.fail); - }); - - it('should always call `toggleSubmitBtnState` with `false` once request is completed', done => { - mock.onPut(integrationSettingsForm.testEndPoint).networkError(); - - spyOn(integrationSettingsForm, 'toggleSubmitBtnState'); - - integrationSettingsForm - .testSettings(formData) - .then(() => { - expect(integrationSettingsForm.toggleSubmitBtnState).toHaveBeenCalledWith(false); - - done(); - }) - .catch(done.fail); - }); - }); -}); |