From 2a1276cdc325c77bbe6745a0ed2508e304dac897 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Fri, 8 Mar 2019 14:09:13 +0100 Subject: [PATCH] Better test ReportModal first --- components/DisableModal.spec.js | 51 ----------- components/DisableModal.vue | 144 -------------------------------- components/ReportModal.spec.js | 86 +++++++++++++++++++ 3 files changed, 86 insertions(+), 195 deletions(-) delete mode 100644 components/DisableModal.spec.js delete mode 100644 components/DisableModal.vue create mode 100644 components/ReportModal.spec.js diff --git a/components/DisableModal.spec.js b/components/DisableModal.spec.js deleted file mode 100644 index 0ca8630f8..000000000 --- a/components/DisableModal.spec.js +++ /dev/null @@ -1,51 +0,0 @@ -import { shallowMount, mount, createLocalVue } from '@vue/test-utils' -import DisableModal from './DisableModal.vue' -import Vue from 'vue' -import Vuex from 'vuex' -import Styleguide from '@human-connection/styleguide' -import portal from 'portal-vue' - -const localVue = createLocalVue() - -localVue.use(Vuex) -localVue.use(Styleguide) -localVue.use(portal) - -describe('DisableModal.vue', () => { - let wrapper - let getters - let store - let mocks - - beforeEach(() => { - getters = { - 'modal/data': () => false - } - - store = new Vuex.Store({ - getters - }) - mocks = { $t: () => {} } - }) - - describe('mount', () => { - beforeEach(() => { - wrapper = mount(DisableModal, { store, mocks, localVue }) - }) - - it('renders', () => { - expect(wrapper.is('div')).toBe(true) - }) - }) - - describe('shallowMount', () => { - beforeEach(() => { - wrapper = shallowMount(DisableModal, { store, mocks, localVue }) - }) - describe('isOpen', () => { - it('defaults to false', () => { - expect(wrapper.vm.isOpen).toBe(false) - }) - }) - }) -}) diff --git a/components/DisableModal.vue b/components/DisableModal.vue deleted file mode 100644 index 5865d3e95..000000000 --- a/components/DisableModal.vue +++ /dev/null @@ -1,144 +0,0 @@ - - - - - diff --git a/components/ReportModal.spec.js b/components/ReportModal.spec.js new file mode 100644 index 000000000..827c60dcf --- /dev/null +++ b/components/ReportModal.spec.js @@ -0,0 +1,86 @@ +import { shallowMount, render, mount, createLocalVue } from '@vue/test-utils' +import ReportModal from './ReportModal.vue' +import Vue from 'vue' +import Vuex from 'vuex' +import Styleguide from '@human-connection/styleguide' +import portal from 'portal-vue' + +const localVue = createLocalVue() + +localVue.use(Vuex) +localVue.use(Styleguide) +localVue.use(portal) + +describe('ReportModal.vue', () => { + let wrapper + let getters + let store + let mocks + let $apollo + + beforeEach(() => { + getters = { + 'modal/data': () => { + return { + success: false, + loading: false, + disabled: false + } + } + } + $apollo = { + mutate: jest.fn() + } + }) + + describe('mount', () => { + const wrapper = () => { + mocks = { + $t: () => {}, + $apollo + } + store = new Vuex.Store({ + getters + }) + return mount(ReportModal, { store, mocks, localVue }) + } + + it('renders', () => { + expect(wrapper().is('div')).toBe(true) + }) + + describe('when open', () => { + 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('shallowMount', () => { + const wrapper = () => { + mocks = { + $t: () => {}, + $apollo + } + store = new Vuex.Store({ + getters + }) + return shallowMount(ReportModal, { store, mocks, localVue }) + } + + describe('isOpen', () => { + it('defaults to false', () => { + expect(wrapper().vm.isOpen).toBe(false) + }) + }) + }) +})