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').wait(500).type('Add test', { delay: 50 }); cy.getDataTest('input-domain').find('input').wait(500).type('addtest.com', { delay: 50 }); 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').should('not.exist'); }); it.only('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') .wait(500) .clear() .type('Updated website', { delay: 50 }); cy.getDataTest('input-domain') .find('input') .wait(500) .clear() .type('updatedwebsite.com', { delay: 50 }); 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').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').should('not.exist'); }); });