aboutsummaryrefslogtreecommitdiff
path: root/cypress/e2e/website.cy.ts
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-01-24 13:09:50 +0000
committerFuwn <[email protected]>2026-01-24 13:09:50 +0000
commit396acf3bbbe00a192cb0ea0a9ccf91b1d8d2850b (patch)
treeb9df4ca6a70db45cfffbae6fdd7252e20fb8e93c /cypress/e2e/website.cy.ts
downloadumami-main.tar.xz
umami-main.zip
Initial commitHEADmain
Created from https://vercel.com/new
Diffstat (limited to 'cypress/e2e/website.cy.ts')
-rw-r--r--cypress/e2e/website.cy.ts89
1 files changed, 89 insertions, 0 deletions
diff --git a/cypress/e2e/website.cy.ts b/cypress/e2e/website.cy.ts
new file mode 100644
index 0000000..2dcd602
--- /dev/null
+++ b/cypress/e2e/website.cy.ts
@@ -0,0 +1,89 @@
+describe('Website tests', () => {
+ Cypress.session.clearAllSavedSessions();
+
+ beforeEach(() => {
+ cy.login(Cypress.env('umami_user'), Cypress.env('umami_password'));
+ });
+
+ it('Add a website', () => {
+ // add website
+ cy.visit('/settings/websites');
+ cy.getDataTest('button-website-add').click();
+ cy.contains(/Add website/i).should('be.visible');
+ cy.getDataTest('input-name').find('input').as('inputUsername').click();
+ cy.getDataTest('input-name').find('input').type('Add test', { delay: 0 });
+ cy.getDataTest('input-domain').find('input').click();
+ cy.getDataTest('input-domain').find('input').type('addtest.com', { delay: 0 });
+ cy.getDataTest('button-submit').click();
+ cy.get('td[label="Name"]').should('contain.text', 'Add test');
+ cy.get('td[label="Domain"]').should('contain.text', 'addtest.com');
+
+ // clean-up data
+ cy.getDataTest('link-button-edit').first().click();
+ cy.contains(/Details/i).should('be.visible');
+ cy.getDataTest('text-field-websiteId')
+ .find('input')
+ .then($input => {
+ const websiteId = $input[0].value;
+ cy.deleteWebsite(websiteId);
+ });
+ cy.visit('/settings/websites');
+ cy.contains(/Add test/i).should('not.exist');
+ });
+
+ it('Edit a website', () => {
+ // prep data
+ cy.addWebsite('Update test', 'updatetest.com');
+ cy.visit('/settings/websites');
+
+ // edit website
+ cy.getDataTest('link-button-edit').first().click();
+ cy.contains(/Details/i).should('be.visible');
+ cy.getDataTest('input-name').find('input').click();
+ cy.getDataTest('input-name').find('input').clear();
+ cy.getDataTest('input-name').find('input').type('Updated website', { delay: 0 });
+ cy.getDataTest('input-domain').find('input').click();
+ cy.getDataTest('input-domain').find('input').clear();
+ cy.getDataTest('input-domain').find('input').type('updatedwebsite.com', { delay: 0 });
+ cy.getDataTest('button-submit').click({ force: true });
+ cy.getDataTest('input-name').find('input').should('have.value', 'Updated website');
+ cy.getDataTest('input-domain').find('input').should('have.value', 'updatedwebsite.com');
+
+ // verify tracking script
+ cy.get('div')
+ .contains(/Tracking code/i)
+ .click();
+ cy.get('textarea').should('contain.text', Cypress.config().baseUrl + '/script.js');
+
+ // clean-up data
+ cy.get('div')
+ .contains(/Details/i)
+ .click();
+ cy.contains(/Details/i).should('be.visible');
+ cy.getDataTest('text-field-websiteId')
+ .find('input')
+ .then($input => {
+ const websiteId = $input[0].value;
+ cy.deleteWebsite(websiteId);
+ });
+ cy.visit('/settings/websites');
+ cy.contains(/Add test/i).should('not.exist');
+ });
+
+ it('Delete a website', () => {
+ // prep data
+ cy.addWebsite('Delete test', 'deletetest.com');
+ cy.visit('/settings/websites');
+
+ // delete website
+ cy.getDataTest('link-button-edit').first().click();
+ cy.contains(/Data/i).should('be.visible');
+ cy.get('div').contains(/Data/i).click();
+ cy.contains(/All website data will be deleted./i).should('be.visible');
+ cy.getDataTest('button-delete').click();
+ cy.contains(/Type DELETE in the box below to confirm./i).should('be.visible');
+ cy.get('input[name="confirm"').type('DELETE');
+ cy.get('button[type="submit"]').click();
+ cy.contains(/Delete test/i).should('not.exist');
+ });
+});