describe('Report.vue', () => { it('renders feedback report', async () => { const wrapper = mount(Report, { localVue }) wrapper.setData({ selectedIndex: 1 }) await flushPromises() expect(wrapper).toMatchSnapshot() }) })
describe('Events.vue', () => { it('shows active events', async () => { const wrapper = shallowMount(Events, { stubs: {'EventList': EventList} }) await flushPromises() expect(wrapper).toMatchSnapshot() }) it('shows past events', async () => { const wrapper = shallowMount(Events, { stubs: {'EventList': EventList} }) wrapper.setData({ time: 'past' }) await flushPromises() expect(wrapper).toMatchSnapshot() }) it('shows future events', async () => { const wrapper = shallowMount(Events, { stubs: {'EventList': EventList} }) wrapper.setData({ time: 'future' }) await flushPromises() expect(wrapper).toMatchSnapshot() }) })
describe('handles errors', () => { beforeEach(async () => { jest.useFakeTimers() mocks.$apollo.mutate = jest.fn().mockRejectedValueOnce({ message: 'Not Authorised!', }) wrapper = Wrapper() postTitleInput = wrapper.find('.ds-input') postTitleInput.setValue(postTitle) await wrapper.vm.updateEditorContent(postContent) categoryIds = ['cat12'] wrapper.find(CategoriesSelect).setData({ categories }) englishLanguage = wrapper .findAll('li') .filter((language) => language.text() === 'English') englishLanguage.trigger('click') await Vue.nextTick() dataPrivacyButton = await wrapper .find(CategoriesSelect) .find('[data-test="category-buttons-cat12"]') dataPrivacyButton.trigger('click') await Vue.nextTick() }) it('shows an error toaster when apollo mutation rejects', async () => { await wrapper.find('form').trigger('submit') await mocks.$apollo.mutate await expect(mocks.$toast.error).toHaveBeenCalledWith('Not Authorised!') }) })
const store = new Vuex.Store({ mutations, getters }) const wrapper = mount(CategoriesFilter, { mocks, localVue, store }) wrapper.setData({ categories: [ { id: 'cat4', name: 'Environment & Nature', icon: 'tree', slug: 'environment-nature' },
...opts, }) wrapper.setData(backendData) await Vue.nextTick() return wrapper