From adfb640857c659bb0e03b93ad4da1451d61fcb6f Mon Sep 17 00:00:00 2001 From: Jonas Date: Tue, 1 Aug 2023 15:55:32 +0200 Subject: [PATCH] test(cypress): Add tests for new landingpage widgets Signed-off-by: Jonas --- cypress/e2e/page-landingpage.spec.js | 79 ++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 cypress/e2e/page-landingpage.spec.js diff --git a/cypress/e2e/page-landingpage.spec.js b/cypress/e2e/page-landingpage.spec.js new file mode 100644 index 000000000..178c094bb --- /dev/null +++ b/cypress/e2e/page-landingpage.spec.js @@ -0,0 +1,79 @@ +/** + * @copyright Copyright (c) 2023 Jonas + * + * @author Jonas + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +/** + * Tests for page details. + */ + +const collective = 'Landingpage Collective' + +describe('Page landing page', function() { + before(function() { + cy.login('bob', { route: '/apps/collectives' }) + cy.deleteAndSeedCollective(collective) + cy.seedCircleMember(collective, 'alice') + cy.seedCircleMember(collective, 'jane') + cy.seedCircleMember(collective, 'john') + cy.seedPage('Page 1', '', 'Readme.md') + cy.seedPage('Page 2', '', 'Readme.md') + cy.seedPage('Page 3', '', 'Readme.md') + }) + + beforeEach(function() { + cy.login('bob', { route: `/apps/collectives/${collective}` }) + // make sure the page list loaded properly + cy.contains('.app-content-list-item a', 'Page 1') + }) + + describe('Displays recent pages', function() { + it('Allows to display/close TOC and switch page modes in between', function() { + cy.get('.recent-pages-widget .recent-page-tile') + .contains('Page 2') + .click() + + cy.url().should('include', `/apps/collectives/${encodeURIComponent(collective)}/${encodeURIComponent('Page 2')}`) + }) + }) + + describe('Displays recent members', function() { + it('Allows to open members modal as admin', function() { + cy.get('.members-widget .avatardiv[title="alice"]') + cy.get('.members-widget .button-vue[title="Show members"]') + .click() + + cy.get('.current-members').contains('.member-row', 'alice') + .find('.member-row__actions') + .should('exist') + }) + + it('Allows to open members modal as member', function() { + cy.login('alice', { route: `/apps/collectives/${collective}` }) + cy.get('.members-widget .avatardiv[title="bob"]') + cy.get('.members-widget .button-vue[title="Show members"]') + .click() + + cy.get('.current-members').contains('.member-row', 'bob') + .find('.member-row__actions') + .should('not.exist') + }) + }) +})