diff options
Diffstat (limited to 'spec/frontend/alerts_service_settings/components/alerts_service_form_spec.js')
-rw-r--r-- | spec/frontend/alerts_service_settings/components/alerts_service_form_spec.js | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/spec/frontend/alerts_service_settings/components/alerts_service_form_spec.js b/spec/frontend/alerts_service_settings/components/alerts_service_form_spec.js deleted file mode 100644 index 346059ed7be..00000000000 --- a/spec/frontend/alerts_service_settings/components/alerts_service_form_spec.js +++ /dev/null @@ -1,152 +0,0 @@ -import { nextTick } from 'vue'; -import axios from 'axios'; -import MockAdapter from 'axios-mock-adapter'; -import { shallowMount } from '@vue/test-utils'; -import { GlModal } from '@gitlab/ui'; -import AlertsServiceForm from '~/alerts_service_settings/components/alerts_service_form.vue'; -import ToggleButton from '~/vue_shared/components/toggle_button.vue'; -import { deprecatedCreateFlash as createFlash } from '~/flash'; - -jest.mock('~/flash'); - -const defaultProps = { - initialAuthorizationKey: 'abcedfg123', - formPath: 'http://invalid', - url: 'https://gitlab.com/endpoint-url', - alertsSetupUrl: 'http://invalid', - alertsUsageUrl: 'http://invalid', - initialActivated: false, - isDisabled: false, -}; - -describe('AlertsServiceForm', () => { - let wrapper; - let mockAxios; - - const createComponent = (props = defaultProps) => { - wrapper = shallowMount(AlertsServiceForm, { - propsData: { - ...defaultProps, - ...props, - }, - }); - }; - - const findUrl = () => wrapper.find('#url'); - const findAuthorizationKey = () => wrapper.find('#authorization-key'); - const findDescription = () => wrapper.find('[data-testid="description"'); - - beforeEach(() => { - mockAxios = new MockAdapter(axios); - }); - - afterEach(() => { - wrapper.destroy(); - mockAxios.restore(); - }); - - describe('with default values', () => { - beforeEach(() => { - createComponent(); - }); - - it('renders "url" input', () => { - expect(findUrl().html()).toMatchSnapshot(); - }); - - it('renders "authorization-key" input', () => { - expect(findAuthorizationKey().html()).toMatchSnapshot(); - }); - - it('renders toggle button', () => { - expect(wrapper.find(ToggleButton).html()).toMatchSnapshot(); - }); - - it('shows description and docs links', () => { - expect(findDescription().element.innerHTML).toMatchSnapshot(); - }); - }); - - describe('reset key', () => { - it('updates the authorization key on success', async () => { - const formPath = 'some/path'; - mockAxios.onPut(formPath).replyOnce(200, { token: 'newToken' }); - - createComponent({ formPath }); - - wrapper.find(GlModal).vm.$emit('ok'); - await axios.waitForAll(); - - expect(findAuthorizationKey().attributes('value')).toBe('newToken'); - }); - - it('shows flash message on error', () => { - const formPath = 'some/path'; - mockAxios.onPut(formPath).replyOnce(404); - - createComponent({ formPath }); - - return wrapper.vm.resetKey().then(() => { - expect(findAuthorizationKey().attributes('value')).toBe( - defaultProps.initialAuthorizationKey, - ); - expect(createFlash).toHaveBeenCalled(); - }); - }); - }); - - describe('activate toggle', () => { - describe('successfully completes', () => { - describe.each` - initialActivated | value - ${false} | ${true} - ${true} | ${false} - `( - 'when initialActivated=$initialActivated and value=$value', - ({ initialActivated, value }) => { - beforeEach(() => { - const formPath = 'some/path'; - mockAxios - .onPut(formPath, { service: { active: value } }) - .replyOnce(200, { active: value }); - createComponent({ initialActivated, formPath }); - - return wrapper.vm.toggleActivated(value); - }); - - it(`updates toggle button value to ${value}`, () => { - expect(wrapper.find(ToggleButton).props('value')).toBe(value); - }); - }, - ); - }); - - describe('error is encountered', () => { - beforeEach(() => { - const formPath = 'some/path'; - mockAxios.onPut(formPath).replyOnce(500); - }); - - it('restores previous value', () => { - createComponent({ initialActivated: false }); - - return wrapper.vm.toggleActivated(true).then(() => { - expect(wrapper.find(ToggleButton).props('value')).toBe(false); - }); - }); - }); - }); - - describe('form is disabled', () => { - beforeEach(() => { - createComponent({ isDisabled: true }); - }); - - it('cannot be toggled', () => { - wrapper.find(ToggleButton).vm.$emit('change'); - return nextTick().then(() => { - expect(wrapper.find(ToggleButton).props('disabledInput')).toBe(true); - }); - }); - }); -}); |