diff --git a/components/ModalTestbed.vue b/components/ModalTestbed.vue new file mode 100644 index 000000000..d6df19c56 --- /dev/null +++ b/components/ModalTestbed.vue @@ -0,0 +1,17 @@ + + + diff --git a/components/ReportModal.spec.js b/components/ReportModal.spec.js index 827c60dcf..92f03cd33 100644 --- a/components/ReportModal.spec.js +++ b/components/ReportModal.spec.js @@ -1,5 +1,6 @@ import { shallowMount, render, mount, createLocalVue } from '@vue/test-utils' import ReportModal from './ReportModal.vue' +import ModalTestbed from './ModalTestbed.vue' import Vue from 'vue' import Vuex from 'vuex' import Styleguide from '@human-connection/styleguide' @@ -12,7 +13,7 @@ localVue.use(Styleguide) localVue.use(portal) describe('ReportModal.vue', () => { - let wrapper + let Wrapper let getters let store let mocks @@ -29,44 +30,55 @@ describe('ReportModal.vue', () => { } } $apollo = { - mutate: jest.fn() + mutate: jest.fn().mockResolvedValue(null) } }) describe('mount', () => { - const wrapper = () => { + const Wrapper = () => { mocks = { $t: () => {}, + $toast: { + success: () => {}, + error: () => {} + }, $apollo } store = new Vuex.Store({ getters }) - return mount(ReportModal, { store, mocks, localVue }) + return mount(ModalTestbed, { store, mocks, localVue }) } it('renders', () => { - expect(wrapper().is('div')).toBe(true) + expect(Wrapper().is('div')).toBe(true) }) - describe('when open', () => { - beforeEach(() => { - getters['modal/open'] = () => 'report' - }) + describe('modal visible', () => { + describe('shows a report', () => { + beforeEach(() => { + getters['modal/open'] = () => 'report' + }) - describe('confirm', () => { - it('calls a mutation', () => { - console.log(wrapper().html()) - const confirmButton = wrapper().find('.ds-button-danger') - confirmButton.trigger('click') - expect($apollo.mutate).toHaveBeenCalled() + describe('click confirm button', () => { + let wrapper + + beforeEach(() => { + wrapper = Wrapper() + const confirmButton = wrapper.find('.ds-button-danger') + confirmButton.trigger('click') + }) + + it('calls report mutation', () => { + expect($apollo.mutate).toHaveBeenCalled() + }) }) }) }) }) describe('shallowMount', () => { - const wrapper = () => { + const Wrapper = () => { mocks = { $t: () => {}, $apollo @@ -79,7 +91,7 @@ describe('ReportModal.vue', () => { describe('isOpen', () => { it('defaults to false', () => { - expect(wrapper().vm.isOpen).toBe(false) + expect(Wrapper().vm.isOpen).toBe(false) }) }) })