diff options
| author | Fuwn <[email protected]> | 2026-01-24 13:09:50 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-01-24 13:09:50 +0000 |
| commit | 396acf3bbbe00a192cb0ea0a9ccf91b1d8d2850b (patch) | |
| tree | b9df4ca6a70db45cfffbae6fdd7252e20fb8e93c /cypress/support/e2e.ts | |
| download | umami-main.tar.xz umami-main.zip | |
Created from https://vercel.com/new
Diffstat (limited to 'cypress/support/e2e.ts')
| -rw-r--r-- | cypress/support/e2e.ts | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/cypress/support/e2e.ts b/cypress/support/e2e.ts new file mode 100644 index 0000000..a95035b --- /dev/null +++ b/cypress/support/e2e.ts @@ -0,0 +1,123 @@ +/// <reference types="cypress" /> +import { uuid } from '../../src/lib/crypto'; + +Cypress.Commands.add('getDataTest', (value: string) => { + return cy.get(`[data-test=${value}]`); +}); + +Cypress.Commands.add('logout', () => { + cy.getDataTest('button-profile').click(); + cy.getDataTest('item-logout').click(); + cy.url().should('eq', Cypress.config().baseUrl + '/login'); +}); + +Cypress.Commands.add('login', (username: string, password: string) => { + cy.session([username, password], () => { + cy.request({ + method: 'POST', + url: '/api/auth/login', + body: { + username, + password, + }, + }) + .then(response => { + Cypress.env('authorization', `bearer ${response.body.token}`); + window.localStorage.setItem('umami.auth', JSON.stringify(response.body.token)); + }) + .its('status') + .should('eq', 200); + }); +}); + +Cypress.Commands.add('addWebsite', (name: string, domain: string) => { + cy.request({ + method: 'POST', + url: '/api/websites', + headers: { + 'Content-Type': 'application/json', + Authorization: Cypress.env('authorization'), + }, + body: { + id: uuid(), + createdBy: '41e2b680-648e-4b09-bcd7-3e2b10c06264', + name: name, + domain: domain, + }, + }).then(response => { + expect(response.status).to.eq(200); + }); +}); + +Cypress.Commands.add('deleteWebsite', (websiteId: string) => { + cy.request({ + method: 'DELETE', + url: `/api/websites/${websiteId}`, + headers: { + 'Content-Type': 'application/json', + Authorization: Cypress.env('authorization'), + }, + }).then(response => { + expect(response.status).to.eq(200); + }); +}); + +Cypress.Commands.add('addUser', (username: string, password: string, role: string) => { + cy.request({ + method: 'POST', + url: '/api/users', + headers: { + 'Content-Type': 'application/json', + Authorization: Cypress.env('authorization'), + }, + body: { + username: username, + password: password, + role: role, + }, + }).then(response => { + expect(response.status).to.eq(200); + }); +}); + +Cypress.Commands.add('deleteUser', (userId: string) => { + cy.request({ + method: 'DELETE', + url: `/api/users/${userId}`, + headers: { + 'Content-Type': 'application/json', + Authorization: Cypress.env('authorization'), + }, + }).then(response => { + expect(response.status).to.eq(200); + }); +}); + +Cypress.Commands.add('addTeam', (name: string) => { + cy.request({ + method: 'POST', + url: '/api/teams', + headers: { + 'Content-Type': 'application/json', + Authorization: Cypress.env('authorization'), + }, + body: { + name: name, + }, + }).then(response => { + expect(response.status).to.eq(200); + }); +}); + +Cypress.Commands.add('deleteTeam', (teamId: string) => { + cy.request({ + method: 'DELETE', + url: `/api/teams/${teamId}`, + headers: { + 'Content-Type': 'application/json', + Authorization: Cypress.env('authorization'), + }, + }).then(response => { + expect(response.status).to.eq(200); + }); +}); |