mirror of
https://github.com/DOI-DO/j40-cejst-2.git
synced 2025-02-23 10:04:18 -08:00
* Add public engagement page - modifies sitemap config - creates PublicEvent component - adds SVGs for dates - all copy is in intl * Add Public Engagement button to each page - create new PublicEng component - add to each page - update snapshots - modify CEJST and Meth page to give button more space * Make mobile compliant and fix DOM validation error - transform each <p>'s descendent into a <CollectionDescription> - fix a mobile rendering issue with <Collection> library - format registration links so they render on mobile - update snapshots * Add spacing to descriptions and fix links * Add Gherkin tests for testing links - all zoom links should be functional - ensure all legacy tests, test the new page - add data-cy tag for cypress - update snapshots * Refactor to pass accessibility on all pages - update snapshots * Correct registration links * Make registration links into buttons * Make new tag bold * Update copy based on feedback from Corey
68 lines
2 KiB
JavaScript
68 lines
2 KiB
JavaScript
/* eslint-disable new-cap */
|
|
|
|
// Common step definitions for Gherkin
|
|
|
|
import {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(ENDPOINTS[pageArray.join('_').toUpperCase()]);
|
|
});
|
|
|
|
// Common Whens:
|
|
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');
|
|
});
|