Dominik Pschenitschni
4908469d49
Also align repo closer to `create-vue` template and improve cypress integration
35 lines
900 B
TypeScript
35 lines
900 B
TypeScript
|
|
// This authenticates a user and puts the token in local storage which allows us to perform authenticated requests.
|
|
// Built after https://github.com/cypress-io/cypress-example-recipes/tree/bd2d6ffb33214884cab343d38e7f9e6ebffb323f/examples/logging-in__jwt
|
|
|
|
import {UserFactory} from '../factories/user'
|
|
|
|
export function login(user, cacheAcrossSpecs = false) {
|
|
if (!user) {
|
|
throw new Error('Needs user')
|
|
}
|
|
// Caching session when logging in via page visit
|
|
cy.session(`user__${user.username}`, () => {
|
|
cy.request('POST', `${Cypress.env('API_URL')}/login`, {
|
|
username: user.username,
|
|
password: '1234',
|
|
}).then(({ body }) => {
|
|
window.localStorage.setItem('token', body.token)
|
|
})
|
|
}, {
|
|
cacheAcrossSpecs,
|
|
})
|
|
}
|
|
|
|
export function createFakeUserAndLogin() {
|
|
let user
|
|
before(() => {
|
|
user = UserFactory.create(1)[0]
|
|
})
|
|
|
|
beforeEach(() => {
|
|
login(user, true)
|
|
})
|
|
|
|
return user
|
|
} |