diff options
Diffstat (limited to 'spec/frontend/incidents_settings/components/alerts_form_spec.js')
-rw-r--r-- | spec/frontend/incidents_settings/components/alerts_form_spec.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/spec/frontend/incidents_settings/components/alerts_form_spec.js b/spec/frontend/incidents_settings/components/alerts_form_spec.js new file mode 100644 index 00000000000..04832f31e58 --- /dev/null +++ b/spec/frontend/incidents_settings/components/alerts_form_spec.js @@ -0,0 +1,49 @@ +import { shallowMount } from '@vue/test-utils'; +import AlertsSettingsForm from '~/incidents_settings/components/alerts_form.vue'; + +describe('Alert integration settings form', () => { + let wrapper; + const service = { updateSettings: jest.fn().mockResolvedValue() }; + + const findForm = () => wrapper.find({ ref: 'settingsForm' }); + + beforeEach(() => { + wrapper = shallowMount(AlertsSettingsForm, { + provide: { + service, + alertSettings: { + issueTemplateKey: 'selecte_tmpl', + createIssue: true, + sendEmail: false, + templates: [], + }, + }, + }); + }); + + afterEach(() => { + if (wrapper) { + wrapper.destroy(); + wrapper = null; + } + }); + + describe('default state', () => { + it('should match the default snapshot', () => { + expect(wrapper.element).toMatchSnapshot(); + }); + }); + + describe('form', () => { + it('should call service `updateSettings` on submit', () => { + findForm().trigger('submit'); + expect(service.updateSettings).toHaveBeenCalledWith( + expect.objectContaining({ + create_issue: wrapper.vm.createIssueEnabled, + issue_template_key: wrapper.vm.issueTemplate, + send_email: wrapper.vm.sendEmailEnabled, + }), + ); + }); + }); +}); |