j40-cejst-2/client/cypress/e2e/accessibility.test.js
Nat Hillard 426f596c7a
Adding Cypress for e2e testing (#85)
* using the higher-level react-testing-library, and regenerating snapshot - renders real DOM elements
* Basic e2e testing with Cypress, following the guide here: https://www.gatsbyjs.com/docs/how-to/testing/end-to-end-testing/ ; needed to install cypress-local to avoid jest-cypress collision
* Adding accessibility testing support and basic a11y tests
* adding failure logging
* Adding nightly test run
* Fix misc stuff from lighthouse (#81)
* Removing local-cypress, relying instead on a combination
of type reference and eslint-plugin-cypress;
adding cypress to jest ignore paths to avoid conflict -
`npm test` is now jest-only, use `npm run test:e2e` to run cypress tests
* updating comment to clarify timezone
2021-06-02 20:53:22 -04:00

34 lines
861 B
JavaScript

// / <reference types="Cypress" />
// Define at the top of the spec file or just import it
// eslint-disable-next-line require-jsdoc
function terminalLog(violations) {
cy.task(
'log',
`${violations.length} accessibility violation${
violations.length === 1 ? '' : 's'
} ${violations.length === 1 ? 'was' : 'were'} detected`,
);
// pluck specific keys to keep the table readable
const violationData = violations.map(
({id, impact, description, nodes}) => ({
id,
impact,
description,
nodes: nodes.length,
}),
);
cy.task('table', violationData);
}
describe('Accessibility tests', () => {
beforeEach(() => {
cy.visit('/').get('main').injectAxe();
});
it('Has no detectable accessibility violations on load', () => {
cy.checkA11y(null, null, terminalLog);
});
});