j40-cejst-2/client/cypress/support/step_definitions/commonSteps.js
Vim 92501e4715
Re-order nav links, update download box to include shapefiles, squish pages (#1538)
* Re-order nav links, update download box to include shapefiles, squishy pages (#1536)

* Add dropdown to navigation links

- add download page
- move main pages tests to their own folder
- add download and public eng snapshot test
- remove public engagement button on each page
- swap index with cejst
- update cypress ENDPOINTS
- upate gatsby-config sitemap
- update snapshots
- cypress tests are failing

* Make all page endpoints constants

- fix all cypress tests
- refactor all test to use LegacyTests/constants/PAGES_ENDPOINTS
- gatsby-config to use PAGES_ENDPOINTS
- remove ScoreStepList component
- update J40Header to use constants.PAGES_ENDPOINTS
- update snapshots
- there are 3 locations to update PAGES_ENDPOINTS, namely

1. LegacyTests/constants.tsx
2. constants.tsx
3. gatsby-config

* Add two placeholder pages

- FAQs
- TSD

* remove dropdown from navigation menu

- remove dropdown from gherkin tests
- update snapshots

* Add back public engagement button to all pages

- add send button in area detail alt tag to i18n
- modify public engagement button to have same CSS as send feedback button
- update snapshots

* Update download box to include shapefile downloads

- refator download packet scss
- add shapefile URL to .env files
- update tests
- index forwarding pattern
- update snapshots

* Add FAQ link to About page

* Update footer

- add PEC
- add RFI
- add github link

* Update the staging link URL and title

* Update download Box to match design sync

- update FAQ link copy

* Add comment for reason of commented code
2022-04-07 10:14:54 -07:00

73 lines
2.2 KiB
JavaScript

/* eslint-disable new-cap */
// Common step definitions for Gherkin
import {PAGES_ENDPOINTS} from '../../integration/LegacyTests/constants';
import {hyphenizeString} from '../../integration/common/helpers';
// Common Givens:
Given('I am on the {string} page', (page) => {
const pageArray = page.split(' ');
cy.viewport(1060, 800);
cy.visit(PAGES_ENDPOINTS[pageArray.join('_').toUpperCase()]);
});
// Common Whens:
When(`I click on the {string} dropdown in the navigation`, (page) => {
const pageHyphenCase = hyphenizeString(page);
cy.get(`[data-cy="nav-dropdown-${pageHyphenCase}"]`).click();
});
When(`I click on the {string} page in the navigation`, (page) => {
const pageHyphenCase = hyphenizeString(page);
cy.get(`[data-cy="nav-link-${pageHyphenCase}"]`).click();
});
When(`I look for the {string} CTA`, (ctaString) => {
cy.get(`[data-cy="${hyphenizeString(ctaString)}-block"]`).as('CTA_block');
cy.get('@CTA_block').scrollIntoView().should('be.visible');
});
When(`I look for the {string}`, (footer) => {
cy.get(`[data-cy="${hyphenizeString(footer)}-primary-block"]`).scrollIntoView().should('be.visible');
});
// Common Thens:
Then(`I see {string} in the title`, (title) => {
cy.title().should('include', title);
});
Then(`All links under {string} should work`, (title) => {
cy.testExternalLinks(title);
});
Then(`the link should allow client to send an email to {string}`, (email) => {
cy.get(`@CTA_block`).find('a').invoke('attr', 'href').should('eq', `mailto:${email}`);
});
Then(`the link should respond successfully`, () => {
cy.get(`@externalLink`).then((link) => {
cy.request(link.prop('href'))
.its('status')
.should('eq', 200);
});
});
// Common Ands:
And(`I click on the {string} {string} link`, (ctaString, type) => {
const CTALinkSelector = `[data-cy="${hyphenizeString(ctaString)}-block"] a`;
if (type === 'internal') {
cy.get(CTALinkSelector).click();
} else {
cy.get(CTALinkSelector).as('externalLink');
};
});
And(`I click on the {string} footer link`, (string) => {
cy.get(`[data-cy="${hyphenizeString(string)}"]`).as('externalLink');
});
And(`I click on the {string} event`, (string) => {
cy.get(`[data-cy="${hyphenizeString(string)}-block"]`).as('externalLink');
});