mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
193 lines
6.2 KiB
JavaScript
193 lines
6.2 KiB
JavaScript
import router from './router'
|
|
import NotFound from '@/pages/NotFoundPage.vue'
|
|
|
|
describe('router', () => {
|
|
describe('options', () => {
|
|
const { options } = router
|
|
const { scrollBehavior, routes } = options
|
|
|
|
it('has "/" as base', () => {
|
|
expect(options).toEqual(
|
|
expect.objectContaining({
|
|
base: '/',
|
|
}),
|
|
)
|
|
})
|
|
|
|
it('has "active" as linkActiveClass', () => {
|
|
expect(options).toEqual(
|
|
expect.objectContaining({
|
|
linkActiveClass: 'active',
|
|
}),
|
|
)
|
|
})
|
|
|
|
it('has "history" as mode', () => {
|
|
expect(options).toEqual(
|
|
expect.objectContaining({
|
|
mode: 'history',
|
|
}),
|
|
)
|
|
})
|
|
|
|
describe('scroll behavior', () => {
|
|
it('returns save position when given', () => {
|
|
expect(scrollBehavior({}, {}, 'given')).toBe('given')
|
|
})
|
|
|
|
it('returns selector when hash is given', () => {
|
|
expect(scrollBehavior({ hash: '#to' }, {})).toEqual({ selector: '#to' })
|
|
})
|
|
|
|
it('returns top left coordinates as default', () => {
|
|
expect(scrollBehavior({}, {})).toEqual({ x: 0, y: 0 })
|
|
})
|
|
})
|
|
|
|
describe('routes', () => {
|
|
it('has "/login" as default', () => {
|
|
expect(routes.find((r) => r.path === '/').redirect()).toEqual({ path: '/login' })
|
|
})
|
|
|
|
it('has seventeen routes defined', () => {
|
|
expect(routes).toHaveLength(17)
|
|
})
|
|
|
|
describe('overview', () => {
|
|
it('requires authorization', () => {
|
|
expect(routes.find((r) => r.path === '/overview').meta.requiresAuth).toBeTruthy()
|
|
})
|
|
|
|
it('loads the "Overview" page', async () => {
|
|
const component = await routes.find((r) => r.path === '/overview').component()
|
|
expect(component.default.name).toBe('Overview')
|
|
})
|
|
})
|
|
|
|
describe('send', () => {
|
|
it('requires authorization', () => {
|
|
expect(routes.find((r) => r.path === '/send').meta.requiresAuth).toBeTruthy()
|
|
})
|
|
|
|
it('loads the "Send" page', async () => {
|
|
const component = await routes.find((r) => r.path === '/send').component()
|
|
expect(component.default.name).toBe('Send')
|
|
})
|
|
})
|
|
|
|
describe('profile', () => {
|
|
it('requires authorization', () => {
|
|
expect(routes.find((r) => r.path === '/profile').meta.requiresAuth).toBeTruthy()
|
|
})
|
|
|
|
it('loads the "Profile" page', async () => {
|
|
const component = await routes.find((r) => r.path === '/profile').component()
|
|
expect(component.default.name).toBe('Profile')
|
|
})
|
|
})
|
|
|
|
describe('transactions', () => {
|
|
it('requires authorization', () => {
|
|
expect(routes.find((r) => r.path === '/transactions').meta.requiresAuth).toBeTruthy()
|
|
})
|
|
|
|
it('loads the "Transactions" page', async () => {
|
|
const component = await routes.find((r) => r.path === '/transactions').component()
|
|
expect(component.default.name).toBe('Transactions')
|
|
})
|
|
})
|
|
|
|
describe('login', () => {
|
|
it('loads the "Login" page', async () => {
|
|
const component = await routes.find((r) => r.path === '/login').component()
|
|
expect(component.default.name).toBe('Login')
|
|
})
|
|
})
|
|
|
|
describe('register', () => {
|
|
it('loads the "register" page', async () => {
|
|
const component = await routes.find((r) => r.path === '/register').component()
|
|
expect(component.default.name).toBe('Register')
|
|
})
|
|
})
|
|
|
|
describe('thx', () => {
|
|
const thx = routes.find((r) => r.path === '/thx/:comingFrom')
|
|
|
|
it('loads the "Thx" page', async () => {
|
|
const component = await thx.component()
|
|
expect(component.default.name).toBe('Thx')
|
|
})
|
|
|
|
describe('beforeEnter', () => {
|
|
const beforeEnter = thx.beforeEnter
|
|
const next = jest.fn()
|
|
|
|
it('redirects to login when not coming from a valid page', () => {
|
|
beforeEnter({}, { path: '' }, next)
|
|
expect(next).toBeCalledWith({ path: '/login' })
|
|
})
|
|
|
|
it('enters the page when coming from a valid page', () => {
|
|
jest.resetAllMocks()
|
|
beforeEnter({}, { path: '/forgot-password' }, next)
|
|
expect(next).toBeCalledWith()
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('forgot password', () => {
|
|
it('loads the "ForgotPassword" page', async () => {
|
|
const component = await routes.find((r) => r.path === '/forgot-password').component()
|
|
expect(component.default.name).toBe('ForgotPassword')
|
|
})
|
|
})
|
|
|
|
describe('password with param comingFrom', () => {
|
|
it('loads the "ForgotPassword" page', async () => {
|
|
const component = await routes
|
|
.find((r) => r.path === '/forgot-password/:comingFrom')
|
|
.component()
|
|
expect(component.default.name).toBe('ForgotPassword')
|
|
})
|
|
})
|
|
|
|
describe('register-community', () => {
|
|
it('loads the "registerCommunity" page', async () => {
|
|
const component = await routes.find((r) => r.path === '/register-community').component()
|
|
expect(component.default.name).toBe('RegisterCommunity')
|
|
})
|
|
})
|
|
|
|
describe('select-community', () => {
|
|
it('loads the "SelectCommunity" page', async () => {
|
|
const component = await routes.find((r) => r.path === '/select-community').component()
|
|
expect(component.default.name).toBe('SelectCommunity')
|
|
})
|
|
})
|
|
|
|
describe('reset password', () => {
|
|
it('loads the "ResetPassword" page', async () => {
|
|
const component = await routes
|
|
.find((r) => r.path === '/reset-password/:optin')
|
|
.component()
|
|
expect(component.default.name).toBe('ResetPassword')
|
|
})
|
|
})
|
|
|
|
describe('checkEmail', () => {
|
|
it('loads the "CheckEmail" page', async () => {
|
|
const component = await routes.find((r) => r.path === '/checkEmail/:optin').component()
|
|
expect(component.default.name).toBe('ResetPassword')
|
|
})
|
|
})
|
|
|
|
describe('not found page', () => {
|
|
it('renders the "NotFound" page', async () => {
|
|
expect(routes.find((r) => r.path === '*').component).toEqual(NotFound)
|
|
})
|
|
})
|
|
})
|
|
})
|
|
})
|