| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | /// <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();});
 |