mirror of
https://github.com/umami-software/umami.git
synced 2026-02-04 04:37:11 +01:00
add prelim website tests
This commit is contained in:
parent
14c0c5060a
commit
7ded5fc6c9
7 changed files with 73 additions and 11 deletions
|
|
@ -1,15 +1,11 @@
|
|||
describe('Login test', () => {
|
||||
describe('Login tests', () => {
|
||||
it(
|
||||
'logs user in with correct credentials and logs user out',
|
||||
{
|
||||
defaultCommandTimeout: 10000,
|
||||
},
|
||||
() => {
|
||||
cy.visit('/login');
|
||||
cy.dataCy('input-username').type(Cypress.env('umami_user'));
|
||||
cy.dataCy('input-password').type(Cypress.env('umami_password'));
|
||||
cy.dataCy('button-submit').click();
|
||||
cy.url().should('eq', Cypress.config().baseUrl + '/dashboard');
|
||||
cy.login(Cypress.env('umami_user'), Cypress.env('umami_password'));
|
||||
cy.dataCy('button-profile').click();
|
||||
cy.dataCy('item-logout').click();
|
||||
cy.url().should('eq', Cypress.config().baseUrl + '/login');
|
||||
|
|
|
|||
37
cypress/e2e/website.cy.ts
Normal file
37
cypress/e2e/website.cy.ts
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
describe('Website tests', () => {
|
||||
beforeEach(() => {
|
||||
cy.login(Cypress.env('umami_user'), Cypress.env('umami_password'));
|
||||
cy.get('a[href="/settings"]').click();
|
||||
cy.url().should('include', '/settings/websites');
|
||||
});
|
||||
|
||||
it.skip('Add a website', () => {
|
||||
cy.dataCy('button-website-add').click();
|
||||
cy.contains(/Add website/i).should('be.visible');
|
||||
cy.dataCy('input-name').click().type('Test Website', {
|
||||
delay: 100,
|
||||
});
|
||||
cy.dataCy('input-domain').click().type('testwebsite.com');
|
||||
cy.dataCy('button-submit').click();
|
||||
cy.get('td[label="Name"]').should('contain.text', 'Test Website');
|
||||
cy.get('td[label="Domain"]').should('contain.text', 'testwebsite.com');
|
||||
});
|
||||
|
||||
it('Test tracking script content', () => {
|
||||
cy.dataCy('link-button-edit').first().click();
|
||||
cy.contains(/Tracking code/i).should('be.visible');
|
||||
cy.get('div')
|
||||
.contains(/Tracking code/i)
|
||||
.click();
|
||||
cy.get('textarea').should('contain.text', Cypress.config().baseUrl + '/script2.js');
|
||||
});
|
||||
|
||||
it('Test tracking script content', () => {
|
||||
cy.dataCy('link-button-edit').first().click();
|
||||
cy.contains(/Tracking code/i).should('be.visible');
|
||||
cy.get('div')
|
||||
.contains(/Tracking code/i)
|
||||
.click();
|
||||
cy.get('textarea').should('contain.text', Cypress.config().baseUrl + '/script.js');
|
||||
});
|
||||
});
|
||||
|
|
@ -1,5 +1,24 @@
|
|||
/// <reference types="cypress" />
|
||||
|
||||
Cypress.Commands.add('dataCy', value => {
|
||||
Cypress.Commands.add('dataCy', (value: string) => {
|
||||
return cy.get(`[data-cy=${value}]`);
|
||||
});
|
||||
|
||||
Cypress.Commands.add('login', (username: string, password: string) => {
|
||||
cy.session(
|
||||
[username, password],
|
||||
() => {
|
||||
cy.visit('/login');
|
||||
cy.dataCy('input-username').type(username);
|
||||
cy.dataCy('input-password').type(password);
|
||||
cy.dataCy('button-submit').click();
|
||||
cy.url().should('eq', Cypress.config().baseUrl + '/dashboard');
|
||||
},
|
||||
{
|
||||
validate: () => {
|
||||
cy.visit('/profile');
|
||||
},
|
||||
},
|
||||
);
|
||||
cy.visit('/dashboard');
|
||||
});
|
||||
|
|
|
|||
5
cypress/support/index.d.ts
vendored
5
cypress/support/index.d.ts
vendored
|
|
@ -7,5 +7,10 @@ declare namespace Cypress {
|
|||
* @example cy.dataCy('greeting')
|
||||
*/
|
||||
dataCy(value: string): Chainable<JQuery<HTMLElement>>;
|
||||
/**
|
||||
* Custom command to login user into the app.
|
||||
* @example cy.login('admin', 'password)
|
||||
*/
|
||||
login(username: string, password: string): Chainable<JQuery<HTMLElement>>;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue