diff --git a/webapp/layouts/error.spec.js b/webapp/layouts/error.spec.js new file mode 100644 index 000000000..95234ec5f --- /dev/null +++ b/webapp/layouts/error.spec.js @@ -0,0 +1,47 @@ +import { config, shallowMount } from '@vue/test-utils' +import Error from './error.vue' + +const localVue = global.localVue + +config.stubs['nuxt-link'] = '' + +describe('error.vue', () => { + let mocks, wrapper + + beforeEach(() => { + mocks = { + $t: jest.fn(key => key), + } + }) + + const Wrapper = (propsData = {}) => { + return shallowMount(Error, { mocks, propsData, localVue }) + } + + describe('shallowMount', () => { + it('renders default error message', () => { + wrapper = Wrapper({ error: {} }) + expect(wrapper.find('.error-message').text()).toBe('error-pages.default') + }) + + it('renders error message to given statusCode', () => { + wrapper = Wrapper({ error: { statusCode: 404 } }) + expect(wrapper.find('.error-message').text()).toBe('error-pages.404-default') + }) + + it('renders error message to given custom key', () => { + wrapper = Wrapper({ error: { statusCode: 404, key: 'my-custom-key' } }) + expect(wrapper.find('.error-message').text()).toBe('my-custom-key') + }) + + it('has a link to index page', () => { + wrapper = Wrapper({ error: {} }) + expect(wrapper.find('span[to="/"]').text()).toBe('error-pages.back-to-index') + }) + + it('has an image related to the status code', () => { + wrapper = Wrapper({ error: { statusCode: 404 } }) + expect(wrapper.find('.error-image').attributes('src')).toBe('/img/svg/errors/error404.svg') + }) + }) +}) diff --git a/webapp/layouts/error.vue b/webapp/layouts/error.vue index ab4f5e5bb..4394a5cdb 100644 --- a/webapp/layouts/error.vue +++ b/webapp/layouts/error.vue @@ -1,6 +1,6 @@