Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

E2E tests improvements (test pipeline) - do not merge! #99

Merged
merged 12 commits into from
Oct 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions cypress.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ export default defineConfig({

// Admin account used for administrative tests
DSPACE_TEST_ADMIN_USER: '[email protected]',
DSPACE_TEST_ADMIN_USER_UUID: '335647b6-8a52-4ecb-a8c1-7ebabb199bda',
DSPACE_TEST_ADMIN_PASSWORD: 'dspace',
// Community/collection/publication used for view/edit tests
DSPACE_TEST_COMMUNITY: '0958c910-2037-42a9-81c7-dca80e3892b4',
Expand All @@ -33,6 +34,8 @@ export default defineConfig({
// Account used to test basic submission process
DSPACE_TEST_SUBMIT_USER: '[email protected]',
DSPACE_TEST_SUBMIT_USER_PASSWORD: 'dspace',
// Administrator users group
DSPACE_ADMINISTRATOR_GROUP: 'e59f5659-bff9-451e-b28f-439e7bd467e4'
},
e2e: {
// Setup our plugins for e2e tests
Expand Down
48 changes: 48 additions & 0 deletions cypress/e2e/admin-add-new-modals.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import { testA11y } from 'cypress/support/utils';

describe('Admin Add New Modals', () => {
beforeEach(() => {
// Must login as an Admin for sidebar to appear
cy.visit('/login');
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
});

it('Add new Community modal should pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').click();

// Click on entry of menu
cy.get('#admin-menu-section-new-title').click();

cy.get('a[data-test="menu.section.new_community"]').click();

// Analyze <ds-create-community-parent-selector> for accessibility
testA11y('ds-create-community-parent-selector');
});

it('Add new Collection modal should pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').click();

// Click on entry of menu
cy.get('#admin-menu-section-new-title').click();

cy.get('a[data-test="menu.section.new_collection"]').click();

// Analyze <ds-create-collection-parent-selector> for accessibility
testA11y('ds-create-collection-parent-selector');
});

it('Add new Item modal should pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').click();

// Click on entry of menu
cy.get('#admin-menu-section-new-title').click();

cy.get('a[data-test="menu.section.new_item"]').click();

// Analyze <ds-create-item-parent-selector> for accessibility
testA11y('ds-create-item-parent-selector');
});
});
16 changes: 16 additions & 0 deletions cypress/e2e/admin-curation-tasks.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { testA11y } from 'cypress/support/utils';

describe('Admin Curation Tasks', () => {
beforeEach(() => {
// Must login as an Admin to see the page
cy.visit('/admin/curation-tasks');
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
});

it('should pass accessibility tests', () => {
// Page must first be visible
cy.get('ds-admin-curation-task').should('be.visible');
// Analyze <ds-admin-curation-task> for accessibility issues
testA11y('ds-admin-curation-task');
});
});
48 changes: 48 additions & 0 deletions cypress/e2e/admin-edit-modals.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import { testA11y } from 'cypress/support/utils';

describe('Admin Edit Modals', () => {
beforeEach(() => {
// Must login as an Admin for sidebar to appear
cy.visit('/login');
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
});

it('Edit Community modal should pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').click();

// Click on entry of menu
cy.get('#admin-menu-section-edit-title').click();

cy.get('a[data-test="menu.section.edit_community"]').click();

// Analyze <ds-edit-community-selector> for accessibility
testA11y('ds-edit-community-selector');
});

it('Edit Collection modal should pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').click();

// Click on entry of menu
cy.get('#admin-menu-section-edit-title').click();

cy.get('a[data-test="menu.section.edit_collection"]').click();

// Analyze <ds-edit-collection-selector> for accessibility
testA11y('ds-edit-collection-selector');
});

it('Edit Item modal should pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').click();

// Click on entry of menu
cy.get('#admin-menu-section-edit-title').click();

cy.get('a[data-test="menu.section.edit_item"]').click();

// Analyze <ds-edit-item-selector> for accessibility
testA11y('ds-edit-item-selector');
});
});
35 changes: 35 additions & 0 deletions cypress/e2e/admin-export-modals.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import { testA11y } from 'cypress/support/utils';

describe('Admin Export Modals', () => {
beforeEach(() => {
// Must login as an Admin for sidebar to appear
cy.visit('/login');
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
});

it('Export metadata modal should pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').click();

// Click on entry of menu
cy.get('#admin-menu-section-export-title').click();

cy.get('a[data-test="menu.section.export_metadata"]').click();

// Analyze <ds-export-metadata-selector> for accessibility
testA11y('ds-export-metadata-selector');
});

it('Export batch modal should pass accessibility tests', () => {
// Pin the sidebar open
cy.get('#sidebar-collapse-toggle').click();

// Click on entry of menu
cy.get('#admin-menu-section-export-title').click();

cy.get('a[data-test="menu.section.export_batch"]').click();

// Analyze <ds-export-batch-selector> for accessibility
testA11y('ds-export-batch-selector');
});
});
17 changes: 17 additions & 0 deletions cypress/e2e/admin-notifications-publication-claim-page.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { testA11y } from 'cypress/support/utils';

describe('Admin Notifications Publication Claim Page', () => {
beforeEach(() => {
// Must login as an Admin to see the page
cy.visit('/admin/notifications/publication-claim');
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
});

it('should pass accessibility tests', () => {

//Page must first be visible
cy.get('ds-admin-notifications-publication-claim-page').should('be.visible');
// Analyze <ds-admin-notifications-publication-claim-page> for accessibility issues
testA11y('ds-admin-notifications-publication-claim-page');
});
});
21 changes: 21 additions & 0 deletions cypress/e2e/admin-search-page.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { testA11y } from 'cypress/support/utils';

describe('Admin Search Page', () => {
beforeEach(() => {
// Must login as an Admin to see the page
cy.visit('/admin/search');
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
});

it('should pass accessibility tests', () => {
//Page must first be visible
cy.get('ds-admin-search-page').should('be.visible');
// At least one search result should be displayed
cy.get('[data-test="list-object"]').should('be.visible');
// Click each filter toggle to open *every* filter
// (As we want to scan filter section for accessibility issues as well)
cy.get('[data-test="filter-toggle"]').click({ multiple: true });
// Analyze <ds-admin-search-page> for accessibility issues
testA11y('ds-admin-search-page');
});
});
21 changes: 21 additions & 0 deletions cypress/e2e/admin-workflow-page.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { testA11y } from 'cypress/support/utils';

describe('Admin Workflow Page', () => {
beforeEach(() => {
// Must login as an Admin to see the page
cy.visit('/admin/workflow');
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
});

it('should pass accessibility tests', () => {
// Page must first be visible
cy.get('ds-admin-workflow-page').should('be.visible');
// At least one search result should be displayed
cy.get('[data-test="list-object"]').should('be.visible');
// Click each filter toggle to open *every* filter
// (As we want to scan filter section for accessibility issues as well)
cy.get('[data-test="filter-toggle"]').click({ multiple: true });
// Analyze <ds-admin-workflow-page> for accessibility issues
testA11y('ds-admin-workflow-page');
});
});
16 changes: 16 additions & 0 deletions cypress/e2e/batch-import-page.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { testA11y } from 'cypress/support/utils';

describe('Batch Import Page', () => {
beforeEach(() => {
// Must login as an Admin to see processes
cy.visit('/admin/batch-import');
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
});

it('should pass accessibility tests', () => {
// Batch import form must first be visible
cy.get('ds-batch-import-page').should('be.visible');
// Analyze <ds-batch-import-page> for accessibility issues
testA11y('ds-batch-import-page');
});
});
16 changes: 16 additions & 0 deletions cypress/e2e/bitstreams-format.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { testA11y } from 'cypress/support/utils';

describe('Bitstreams Formats', () => {
beforeEach(() => {
// Must login as an Admin to see the page
cy.visit('/admin/registries/bitstream-formats');
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
});

it('should pass accessibility tests', () => {
// Page must first be visible
cy.get('ds-bitstream-formats').should('be.visible');
// Analyze <ds-bitstream-formats> for accessibility issues
testA11y('ds-bitstream-formats');
});
});
31 changes: 31 additions & 0 deletions cypress/e2e/bulk-access.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { testA11y } from 'cypress/support/utils';
import { Options } from 'cypress-axe';

describe('Bulk Access', () => {
beforeEach(() => {
// Must login as an Admin to see the page
cy.visit('/access-control/bulk-access');
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
});

it('should pass accessibility tests', () => {
// Page must first be visible
cy.get('ds-bulk-access').should('be.visible');
// At least one search result should be displayed
cy.get('[data-test="list-object"]').should('be.visible');
// Click each filter toggle to open *every* filter
// (As we want to scan filter section for accessibility issues as well)
cy.get('[data-test="filter-toggle"]').click({ multiple: true });
// Analyze <ds-bulk-access> for accessibility issues
testA11y('ds-bulk-access', {
rules: {
// All panels are accordians & fail "aria-required-children" and "nested-interactive".
// Seem to require updating ng-bootstrap and https://github.com/DSpace/dspace-angular/issues/2216
'aria-required-children': { enabled: false },
'nested-interactive': { enabled: false },
// Card titles fail this test currently
'heading-order': { enabled: false },
},
} as Options);
});
});
16 changes: 16 additions & 0 deletions cypress/e2e/create-eperson.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { testA11y } from 'cypress/support/utils';

describe('Create Eperson', () => {
beforeEach(() => {
// Must login as an Admin to see the page
cy.visit('/access-control/epeople/create');
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
});

it('should pass accessibility tests', () => {
// Form must first be visible
cy.get('ds-eperson-form').should('be.visible');
// Analyze <ds-eperson-form> for accessibility issues
testA11y('ds-eperson-form');
});
});
16 changes: 16 additions & 0 deletions cypress/e2e/create-group.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { testA11y } from 'cypress/support/utils';

describe('Create Group', () => {
beforeEach(() => {
// Must login as an Admin to see the page
cy.visit('/access-control/groups/create');
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
});

it('should pass accessibility tests', () => {
// Form must first be visible
cy.get('ds-group-form').should('be.visible');
// Analyze <ds-group-form> for accessibility issues
testA11y('ds-group-form');
});
});
16 changes: 16 additions & 0 deletions cypress/e2e/edit-eperson.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { testA11y } from 'cypress/support/utils';

describe('Edit Eperson', () => {
beforeEach(() => {
// Must login as an Admin to see the page
cy.visit('/access-control/epeople/'.concat(Cypress.env('DSPACE_TEST_ADMIN_USER_UUID')).concat('/edit'));
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
});

it('should pass accessibility tests', () => {
// Form must first be visible
cy.get('ds-eperson-form').should('be.visible');
// Analyze <ds-eperson-form> for accessibility issues
testA11y('ds-eperson-form');
});
});
16 changes: 16 additions & 0 deletions cypress/e2e/edit-group.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { testA11y } from 'cypress/support/utils';

describe('Edit Group', () => {
beforeEach(() => {
// Must login as an Admin to see the page
cy.visit('/access-control/groups/'.concat(Cypress.env('DSPACE_ADMINISTRATOR_GROUP')).concat('/edit'));
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
});

it('should pass accessibility tests', () => {
// Form must first be visible
cy.get('ds-group-form').should('be.visible');
// Analyze <ds-group-form> for accessibility issues
testA11y('ds-group-form');
});
});
13 changes: 13 additions & 0 deletions cypress/e2e/end-user-agreement.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { testA11y } from 'cypress/support/utils';

describe('End User Agreement', () => {
it('should pass accessibility tests', () => {
cy.visit('/info/end-user-agreement');

// Page must first be visible
cy.get('ds-end-user-agreement').should('be.visible');

// Analyze <ds-end-user-agreement> for accessibility
testA11y('ds-end-user-agreement');
});
});
16 changes: 16 additions & 0 deletions cypress/e2e/epeople-registry.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { testA11y } from 'cypress/support/utils';

describe('Epeople registry', () => {
beforeEach(() => {
// Must login as an Admin to see the page
cy.visit('/access-control/epeople');
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
});

it('should pass accessibility tests', () => {
// Epeople registry page must first be visible
cy.get('ds-epeople-registry').should('be.visible');
// Analyze <ds-epeople-registry> for accessibility issues
testA11y('ds-epeople-registry');
});
});
Loading
Loading