Start to implement wrapper modal

This commit is contained in:
Robert Schäfer 2019-03-09 14:17:48 +01:00
parent f247e8657e
commit 03422920a2
2 changed files with 88 additions and 0 deletions

64
components/Modal.spec.js Normal file
View File

@ -0,0 +1,64 @@
import { mount, createLocalVue } from '@vue/test-utils'
import Modal from './Modal.vue'
import Vue from 'vue'
import Vuex from 'vuex'
import { getters, mutations } from '../store/modal'
import Styleguide from '@human-connection/styleguide'
const localVue = createLocalVue()
localVue.use(Vuex)
localVue.use(Styleguide)
describe('Modal.vue', () => {
let Wrapper
let store
let state
let mocks
beforeEach(() => {
mocks = {
$t: () => {}
}
state = {
open: null,
data: {}
}
})
describe('mount', () => {
let wrapper
const Wrapper = () => {
store = new Vuex.Store({
state,
getters: {
'modal/open': getters.open,
'modal/data': getters.data
},
mutations: {
'modal/SET_OPEN': mutations.SET_OPEN
}
})
return mount(Modal, { store, mocks, localVue })
}
it('renders nothing', () => {
wrapper = Wrapper()
expect(wrapper.isEmpty()).toBe(true)
})
describe('store opens a report', () => {
beforeEach(() => {
state = {
open: 'report',
data: {}
}
wrapper = Wrapper()
})
it('renders report modal', () => {
expect(wrapper.contains('#modal-report')).toBe(true)
})
})
})
})

24
components/Modal.vue Normal file
View File

@ -0,0 +1,24 @@
<template>
<report-modal v-if="showReportModal" />
</template>
<script>
import ReportModal from '~/components/ReportModal'
export default {
name: 'Modal',
components: {
ReportModal
},
computed: {
showReportModal() {
return this.$store.getters['modal/open'] === 'report'
}
},
methods: {
close() {
this.$store.commit('modal/SET_OPEN', {})
}
}
}
</script>