Spaces:
Running
Running
/// <reference types="cypress" /> | |
// eslint-disable-next-line @typescript-eslint/triple-slash-reference | |
/// <reference path="../support/index.d.ts" /> | |
export const adminUser = { | |
name: 'Admin User', | |
email: 'admin@example.com', | |
password: 'password' | |
}; | |
const login = (email: string, password: string) => { | |
return cy.session( | |
email, | |
() => { | |
// Make sure to test against us english to have stable tests, | |
// regardless on local language preferences | |
localStorage.setItem('locale', 'en-US'); | |
// Visit auth page | |
cy.visit('/auth'); | |
// Fill out the form | |
cy.get('input[autocomplete="email"]').type(email); | |
cy.get('input[type="password"]').type(password); | |
// Submit the form | |
cy.get('button[type="submit"]').click(); | |
// Wait until the user is redirected to the home page | |
cy.get('#chat-search').should('exist'); | |
// Get the current version to skip the changelog dialog | |
if (localStorage.getItem('version') === null) { | |
cy.get('button').contains("Okay, Let's Go!").click(); | |
} | |
}, | |
{ | |
validate: () => { | |
cy.request({ | |
method: 'GET', | |
url: '/api/v1/auths/', | |
headers: { | |
Authorization: 'Bearer ' + localStorage.getItem('token') | |
} | |
}); | |
} | |
} | |
); | |
}; | |
const register = (name: string, email: string, password: string) => { | |
return cy | |
.request({ | |
method: 'POST', | |
url: '/api/v1/auths/signup', | |
body: { | |
name: name, | |
email: email, | |
password: password | |
}, | |
failOnStatusCode: false | |
}) | |
.then((response) => { | |
expect(response.status).to.be.oneOf([200, 400]); | |
}); | |
}; | |
const registerAdmin = () => { | |
return register(adminUser.name, adminUser.email, adminUser.password); | |
}; | |
const loginAdmin = () => { | |
return login(adminUser.email, adminUser.password); | |
}; | |
Cypress.Commands.add('login', (email, password) => login(email, password)); | |
Cypress.Commands.add('register', (name, email, password) => register(name, email, password)); | |
Cypress.Commands.add('registerAdmin', () => registerAdmin()); | |
Cypress.Commands.add('loginAdmin', () => loginAdmin()); | |
before(() => { | |
cy.registerAdmin(); | |
}); | |