Refactor Message tests

This commit is contained in:
Wolfgang Huß 2022-04-20 13:31:50 +02:00
parent b65cd0fd03
commit 95746a7324
3 changed files with 87 additions and 104 deletions

View File

@ -1,101 +1,117 @@
import { mount } from '@vue/test-utils'
import Thx from './Message'
import Message from './Message'
const localVue = global.localVue
const createMockObject = (comingFrom) => {
return {
$t: jest.fn((t) => t),
$route: {
params: {
comingFrom,
},
},
}
const propsData = {
kind: 'forgot-password-success',
}
// Wolle const createMockObject = () => {
// return {
// $t: jest.fn((t) => t),
// $route: {
// params: {
// comingFrom,
// },
// },
// }
// }
const mocks = {
$t: jest.fn((t) => t),
}
describe('Message', () => {
let wrapper
const Wrapper = (mocks) => {
return mount(Thx, { localVue, mocks })
const Wrapper = () => {
return mount(Message, { localVue, mocks, propsData })
}
describe('mount', () => {
beforeEach(() => {
wrapper = Wrapper(createMockObject('forgotPassword'))
wrapper = Wrapper()
})
it('renders the thx page', () => {
it('renders the component', () => {
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('renders title, subtitle, and button text', () => {
expect(wrapper.find('.test-message-headline').text()).toBe('site.thx.title')
expect(wrapper.find('.test-message-subtitle').text()).toBe('site.thx.email')
expect(wrapper.find('.test-message-button').text()).toBe('login')
})
it('links the redirect button to /login', () => {
// Wolle console.log(wrapper.html())
expect(wrapper.find('a.btn').attributes('href')).toBe('/login')
})
})
describe('coming from /reset-password', () => {
beforeEach(() => {
wrapper = Wrapper(createMockObject('resetPassword'))
})
// Wolle: test 'code' prop and have a look if there is other important stuff uncommented below
it('renders the thanks text', () => {
expect(wrapper.find('p.h4').text()).toBe('site.thx.reset')
})
// Wolle describe('coming from /forgot-password', () => {
// beforeEach(() => {
// wrapper = Wrapper(createMockObject('forgotPassword'))
// })
it('renders the thanks redirect button', () => {
expect(wrapper.find('a.btn').text()).toBe('login')
})
// it('renders the thanks text', () => {
// expect(wrapper.find('p.h4').text()).toBe('site.thx.email')
// })
it('links the redirect button to /login', () => {
expect(wrapper.find('a.btn').attributes('href')).toBe('/login')
})
})
// it('renders the thanks redirect button', () => {
// expect(wrapper.find('a.btn').text()).toBe('login')
// })
describe('coming from /register', () => {
beforeEach(() => {
wrapper = Wrapper(createMockObject('register'))
})
// it('links the redirect button to /login', () => {
// expect(wrapper.find('a.btn').attributes('href')).toBe('/login')
// })
// })
it('renders the thanks text', () => {
expect(wrapper.find('p.h4').text()).toBe('site.thx.register')
})
})
// describe('coming from /reset-password', () => {
// beforeEach(() => {
// wrapper = Wrapper(createMockObject('resetPassword'))
// })
describe('coming from /login', () => {
beforeEach(() => {
wrapper = Wrapper(createMockObject('login'))
})
// it('renders the thanks text', () => {
// expect(wrapper.find('p.h4').text()).toBe('site.thx.reset')
// })
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('login')
// })
it('renders the thanks redirect button', () => {
expect(wrapper.find('a.btn').text()).toBe('settings.password.reset')
})
// it('links the redirect button to /login', () => {
// expect(wrapper.find('a.btn').attributes('href')).toBe('/login')
// })
// })
it('links the redirect button to /forgot-password', () => {
expect(wrapper.find('a.btn').attributes('href')).toBe('/forgot-password')
})
})
// 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')
// })
// })
})

View File

@ -10,17 +10,9 @@
<p class="h4 test-message-subtitle">{{ $t(displaySetup.subtitle) }}</p>
<hr />
<b-button
v-if="$route.params.code"
v-if="displaySetup.linkTo"
class="test-message-button"
:to="`/login/${$route.params.code}`"
>
<!-- eslint-disable-next-line @intlify/vue-i18n/no-dynamic-keys-->
{{ $t(displaySetup.button) }}
</b-button>
<b-button
v-else-if="displaySetup.linkTo"
class="test-message-button"
:to="displaySetup.linkTo"
:to="displaySetup.linkTo + (code ? `/${code}` : '')"
>
<!-- eslint-disable-next-line @intlify/vue-i18n/no-dynamic-keys-->
{{ $t(displaySetup.button) }}
@ -56,7 +48,7 @@ const textFields = {
headline: 'site.thx.title',
subtitle: 'site.thx.register',
button: 'site.login.signin',
// linkTo: '/login',
linkTo: '/login',
},
'check-email': {
headline: 'site.thx.title',
@ -76,6 +68,7 @@ export default {
name: 'Message',
props: {
kind: { type: String, required: true },
code: { type: String, default: '' },
},
data() {
return {

View File

@ -2,8 +2,6 @@ import { mount, RouterLinkStub } from '@vue/test-utils'
import flushPromises from 'flush-promises'
import ForgotPassword from './ForgotPassword'
import { toastErrorSpy } from '@test/testSetup'
const mockAPIcall = jest.fn()
const localVue = global.localVue
@ -118,25 +116,11 @@ describe('ForgotPassword', () => {
await flushPromises()
})
// Wolle it('toasts a standard error message', () => {
// expect(toastErrorSpy).toBeCalledWith('error.email-already-sent')
// })
it('shows error message', () => {
expect(wrapper.find('.test-message-headline').text()).toBe('site.thx.errorTitle')
expect(wrapper.find('.test-message-subtitle').text()).toBe('error.email-already-sent')
expect(wrapper.find('.test-message-button').text()).toBe('login')
})
// Wolle it('pushes to "/thx/forgotPassword"', () => {
// expect(mockAPIcall).toBeCalledWith(
// expect.objectContaining({
// variables: {
// email: 'user@example.org',
// },
// }),
// )
// expect(mockRouterPush).toHaveBeenCalledWith('/thx/forgotPassword')
// })
})
describe('success', () => {
@ -152,17 +136,7 @@ describe('ForgotPassword', () => {
await flushPromises()
})
// it('pushes to "/thx/forgotPassword"', () => {
// expect(mockAPIcall).toBeCalledWith(
// expect.objectContaining({
// variables: {
// email: 'user@example.org',
// },
// }),
// )
// expect(mockRouterPush).toHaveBeenCalledWith('/thx/forgotPassword')
// })
it('shows thx', () => {
it('shows thx, email, send, login button', () => {
expect(wrapper.find('.test-message-headline').text()).toBe('site.thx.title')
expect(wrapper.find('.test-message-subtitle').text()).toBe('site.thx.email')
expect(wrapper.find('.test-message-button').text()).toBe('login')