garage-erp/cypress/support/commands.ts
2026-03-26 03:49:05 +03:00

34 lines
945 B
TypeScript

/// <reference types="cypress" />
declare global {
namespace Cypress {
interface Chainable {
/**
* Log in via the API and set auth cookies so the app
* recognises the user as authenticated.
*/
login(email?: string, password?: string): Chainable<void>
}
}
}
Cypress.Commands.add("login", (email?: string, password?: string) => {
const userEmail = email ?? Cypress.env("TEST_USER_EMAIL") ?? "admin@admin.com"
const userPassword = password ?? Cypress.env("TEST_USER_PASSWORD") ?? "12345678"
cy.request({
method: "POST",
url: `${Cypress.env("API_URL") ?? "http://localhost:8000"}/api/login`,
body: { email: userEmail, password: userPassword },
}).then((response) => {
const { token, user } = response.body
cy.setCookie("auth_token", token, { path: "/" })
cy.setCookie("auth_user", encodeURIComponent(JSON.stringify(user)), {
path: "/",
})
})
})
export {}