diff --git a/frontend/src/components/Message/Message.spec.js b/frontend/src/components/Message/Message.spec.js new file mode 100644 index 000000000..9d65e792c --- /dev/null +++ b/frontend/src/components/Message/Message.spec.js @@ -0,0 +1,101 @@ +import { mount } from '@vue/test-utils' +import Thx from './Message' + +const localVue = global.localVue + +const createMockObject = (comingFrom) => { + return { + $t: jest.fn((t) => t), + $route: { + params: { + comingFrom, + }, + }, + } +} + +describe('Message', () => { + let wrapper + + const Wrapper = (mocks) => { + return mount(Thx, { localVue, mocks }) + } + + describe('mount', () => { + beforeEach(() => { + wrapper = Wrapper(createMockObject('forgotPassword')) + }) + + it('renders the thx page', () => { + expect(wrapper.find('div.header').exists()).toBeTruthy() + }) + + it('renders the title', () => { + expect(wrapper.find('p.h1').text()).toBe('site.thx.title') + }) + }) + + describe('coming from /forgot-password', () => { + beforeEach(() => { + wrapper = Wrapper(createMockObject('forgotPassword')) + }) + + it('renders the thanks text', () => { + expect(wrapper.find('p.h4').text()).toBe('site.thx.email') + }) + + it('renders the thanks redirect button', () => { + expect(wrapper.find('a.btn').text()).toBe('login') + }) + + it('links the redirect button to /login', () => { + expect(wrapper.find('a.btn').attributes('href')).toBe('/login') + }) + }) + + describe('coming from /reset-password', () => { + beforeEach(() => { + wrapper = Wrapper(createMockObject('resetPassword')) + }) + + it('renders the thanks text', () => { + expect(wrapper.find('p.h4').text()).toBe('site.thx.reset') + }) + + it('renders the thanks redirect button', () => { + expect(wrapper.find('a.btn').text()).toBe('login') + }) + + it('links the redirect button to /login', () => { + expect(wrapper.find('a.btn').attributes('href')).toBe('/login') + }) + }) + + describe('coming from /register', () => { + beforeEach(() => { + wrapper = Wrapper(createMockObject('register')) + }) + + it('renders the thanks text', () => { + expect(wrapper.find('p.h4').text()).toBe('site.thx.register') + }) + }) + + describe('coming from /login', () => { + beforeEach(() => { + wrapper = Wrapper(createMockObject('login')) + }) + + it('renders the thanks text', () => { + expect(wrapper.find('p.h4').text()).toBe('site.thx.activateEmail') + }) + + it('renders the thanks redirect button', () => { + expect(wrapper.find('a.btn').text()).toBe('settings.password.reset') + }) + + it('links the redirect button to /forgot-password', () => { + expect(wrapper.find('a.btn').attributes('href')).toBe('/forgot-password') + }) + }) +}) diff --git a/frontend/src/components/Message/Message.vue b/frontend/src/components/Message/Message.vue new file mode 100644 index 000000000..26468f9e3 --- /dev/null +++ b/frontend/src/components/Message/Message.vue @@ -0,0 +1,72 @@ + + + diff --git a/frontend/src/pages/ForgotPassword.vue b/frontend/src/pages/ForgotPassword.vue index 580a0ed97..e357652c8 100644 --- a/frontend/src/pages/ForgotPassword.vue +++ b/frontend/src/pages/ForgotPassword.vue @@ -36,16 +36,21 @@ {{ $t('back') }} + + +