j40-cejst-2/client/cypress/support/commands.js
Vim 92d76fb6f4
Gherkin workflows for desktop (#788)
* Add gherkin tests for page navigation links

- test that every page will load when navigating from any other page
- update snapshots

* Add gherkin workflows 2 - 5

- add test for Federal program officer key information and CTA
- add test for Community members key information and CTA
- add test for Send feedback
- add test for Join the Open Source community
- update snapshots

* Add gherkin tests for footer links

- add footerlinks feature gherkin file
- adds a comment to the hyphenizeString()
- adds keyword functions for footer
- adds data-cy tags to footer component
- updates snapshots

* Adds workflow to learn more about EO

* Add gherkin test for dataset links

- add data-cy tags to dataset sections
- modify Cy command functions names
- update snapshots

* Add cypress test to deploy_staging.yml

* Add working directory env

* Remove keywords.js from cypress test

* Add a Then step to all About and Footer tests

* Refactor step definitions

- use globalStepDefinitions
- rename keywords to commonSteps
- remove keyword from exclusion list
2021-10-13 14:06:05 -07:00

36 lines
992 B
JavaScript

import {hyphenizeString} from '../integration/common/helpers';
// For some interactions, we need access to the underlying map
// Below adapted from https://github.com/codeforcologne/edelgard-map
Cypress.Commands.add('getMap', () => {
return cy.window().its('underlyingMap', {timeout: 10000});
});
Cypress.Commands.add('waitForMove', (map) => {
return new Cypress.Promise((resolve) => {
map.on('moveend', resolve);
});
});
Cypress.Commands.add('panTo', (map, lngLat) => {
map.panTo(lngLat);
cy.waitForMove(map);
});
Cypress.Commands.add('getMapCanvas', () => {
return cy.get('.maplibregl-canvas');
});
Cypress.Commands.add('waitForMapIdle', (map) => {
return new Cypress.Promise((resolve) => {
map.once('idle', resolve);
});
});
Cypress.Commands.add('testExternalLinks', (string) => {
return cy.get(`[data-cy="${hyphenizeString(string)}-block"] a`).each((link) => {
cy.request(link.prop('href'))
.its('status')
.should('eq', 200);
});
});