Skip to content

Commit 69f618e

Browse files
[CST-15592] improve tests, add attributes for testing, fix wrong references
1 parent 4cd55d6 commit 69f618e

9 files changed

Lines changed: 49 additions & 16 deletions

cypress/e2e/admin-add-new-modals.cy.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ describe('Admin Add New Modals', () => {
1414
// Click on entry of menu
1515
cy.get('#admin-menu-section-new-title').click();
1616

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

1919
// Analyze <ds-create-community-parent-selector> for accessibility
2020
testA11y('ds-create-community-parent-selector');
@@ -27,7 +27,7 @@ describe('Admin Add New Modals', () => {
2727
// Click on entry of menu
2828
cy.get('#admin-menu-section-new-title').click();
2929

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

3232
// Analyze <ds-create-collection-parent-selector> for accessibility
3333
testA11y('ds-create-collection-parent-selector');
@@ -40,7 +40,7 @@ describe('Admin Add New Modals', () => {
4040
// Click on entry of menu
4141
cy.get('#admin-menu-section-new-title').click();
4242

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

4545
// Analyze <ds-create-item-parent-selector> for accessibility
4646
testA11y('ds-create-item-parent-selector');

cypress/e2e/admin-edit-modals.cy.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ describe('Admin Edit Modals', () => {
1414
// Click on entry of menu
1515
cy.get('#admin-menu-section-edit-title').click();
1616

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

1919
// Analyze <ds-edit-community-selector> for accessibility
2020
testA11y('ds-edit-community-selector');
@@ -27,7 +27,7 @@ describe('Admin Edit Modals', () => {
2727
// Click on entry of menu
2828
cy.get('#admin-menu-section-edit-title').click();
2929

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

3232
// Analyze <ds-edit-collection-selector> for accessibility
3333
testA11y('ds-edit-collection-selector');
@@ -40,7 +40,7 @@ describe('Admin Edit Modals', () => {
4040
// Click on entry of menu
4141
cy.get('#admin-menu-section-edit-title').click();
4242

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

4545
// Analyze <ds-edit-item-selector> for accessibility
4646
testA11y('ds-edit-item-selector');

cypress/e2e/admin-export-modals.cy.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ describe('Admin Export Modals', () => {
1414
// Click on entry of menu
1515
cy.get('#admin-menu-section-export-title').click();
1616

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

1919
// Analyze <ds-export-metadata-selector> for accessibility
2020
testA11y('ds-export-metadata-selector');
@@ -27,7 +27,7 @@ describe('Admin Export Modals', () => {
2727
// Click on entry of menu
2828
cy.get('#admin-menu-section-export-title').click();
2929

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

3232
// Analyze <ds-export-batch-selector> for accessibility
3333
testA11y('ds-export-batch-selector');

cypress/e2e/admin-search-page.cy.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ describe('Admin Search Page', () => {
1212
cy.get('ds-admin-search-page').should('be.visible');
1313
// At least one search result should be displayed
1414
cy.get('[data-test="list-object"]').should('be.visible');
15+
// Click each filter toggle to open *every* filter
16+
// (As we want to scan filter section for accessibility issues as well)
17+
cy.get('[data-test="filter-toggle"]').click({ multiple: true });
1518
// Analyze <ds-admin-search-page> for accessibility issues
1619
testA11y('ds-admin-search-page');
1720
});

cypress/e2e/admin-workflow-page.cy.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ describe('Admin Workflow Page', () => {
1212
cy.get('ds-admin-workflow-page').should('be.visible');
1313
// At least one search result should be displayed
1414
cy.get('[data-test="list-object"]').should('be.visible');
15+
// Click each filter toggle to open *every* filter
16+
// (As we want to scan filter section for accessibility issues as well)
17+
cy.get('[data-test="filter-toggle"]').click({ multiple: true });
1518
// Analyze <ds-admin-workflow-page> for accessibility issues
1619
testA11y('ds-admin-workflow-page');
1720
});

cypress/e2e/bulk-access.cy.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,20 @@ describe('Bulk Access', () => {
1111
it('should pass accessibility tests', () => {
1212
// Page must first be visible
1313
cy.get('ds-bulk-access').should('be.visible');
14+
// At least one search result should be displayed
15+
cy.get('[data-test="list-object"]').should('be.visible');
16+
// Click each filter toggle to open *every* filter
17+
// (As we want to scan filter section for accessibility issues as well)
18+
cy.get('[data-test="filter-toggle"]').click({ multiple: true });
1419
// Analyze <ds-bulk-access> for accessibility issues
1520
testA11y('ds-bulk-access', {
1621
rules: {
1722
// All panels are accordians & fail "aria-required-children" and "nested-interactive".
1823
// Seem to require updating ng-bootstrap and https://github.com/DSpace/dspace-angular/issues/2216
1924
'aria-required-children': { enabled: false },
2025
'nested-interactive': { enabled: false },
26+
// Card titles fail this test currently
27+
'heading-order': { enabled: false },
2128
},
2229
} as Options);
2330
});

cypress/e2e/health-page.cy.ts

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,35 @@
11
import { testA11y } from 'cypress/support/utils';
22
import { Options } from 'cypress-axe';
33

4-
describe('Health Page', () => {
5-
beforeEach(() => {
6-
// Must login as an Admin to see the page
7-
cy.visit('/health');
8-
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
4+
5+
beforeEach(() => {
6+
// Must login as an Admin to see the page
7+
cy.visit('/health');
8+
cy.loginViaForm(Cypress.env('DSPACE_TEST_ADMIN_USER'), Cypress.env('DSPACE_TEST_ADMIN_PASSWORD'));
9+
});
10+
11+
describe('Health Page > Status Tab', () => {
12+
it('should pass accessibility tests', () => {
13+
// Page must first be visible
14+
cy.get('ds-health-page').should('be.visible');
15+
// Analyze <ds-health-page> for accessibility issues
16+
testA11y('ds-health-page', {
17+
rules: {
18+
// All panels are accordians & fail "aria-required-children" and "nested-interactive".
19+
// Seem to require updating ng-bootstrap and https://github.com/DSpace/dspace-angular/issues/2216
20+
'aria-required-children': { enabled: false },
21+
'nested-interactive': { enabled: false },
22+
},
23+
} as Options);
924
});
25+
});
1026

27+
describe('Health Page > Info Tab', () => {
1128
it('should pass accessibility tests', () => {
1229
// Page must first be visible
1330
cy.get('ds-health-page').should('be.visible');
31+
cy.get('a[data-test="health-page.info-tab"]').click();
32+
1433
// Analyze <ds-health-page> for accessibility issues
1534
testA11y('ds-health-page', {
1635
rules: {

src/app/health-page/health-page.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ <h1>{{'health-page.heading' | translate}}</h1>
33
<div *ngIf="(healthResponse | async) && (healthInfoResponse | async)">
44
<ul ngbNav #nav="ngbNav" [activeId]="'status'" class="nav-tabs">
55
<li [ngbNavItem]="'status'" role="presentation">
6-
<a ngbNavLink>{{'health-page.status-tab' | translate}}</a>
6+
<a data-test="health-page.status-tab" ngbNavLink>{{'health-page.status-tab' | translate}}</a>
77
<ng-template ngbNavContent>
88
<div id="status">
99
<ds-health-panel [healthResponse]="(healthResponse | async)"></ds-health-panel>
1010
</div>
1111
</ng-template>
1212
</li>
1313
<li [ngbNavItem]="'info'" role="presentation">
14-
<a ngbNavLink>{{'health-page.info-tab' | translate}}</a>
14+
<a data-test="health-page.info-tab" ngbNavLink>{{'health-page.info-tab' | translate}}</a>
1515
<ng-template ngbNavContent>
1616
<div id="info">
1717
<ds-health-info [healthInfoResponse]="(healthInfoResponse | async)"></ds-health-info>

src/app/shared/menu/menu-item/onclick-menu-item.component.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@
66
(click)="activate($event)"
77
(keyup.space)="activate($event)"
88
(keyup.enter)="activate($event)"
9+
[attr.data-test]="item.text"
910
>{{item.text | translate}}</a>
10-
<span *ngIf="item.disabled" class="nav-item nav-link disabled">{{item.text | translate}}</span>
11+
<span *ngIf="item.disabled" [attr.data-test]="item.text" class="nav-item nav-link disabled">{{item.text | translate}}</span>

0 commit comments

Comments
 (0)