Only run css selector identifier tests to run on desktop

This commit is contained in:
Gabe Kangas 2022-12-12 00:22:31 -08:00
parent 14e4ca9c28
commit 014cc756bc
No known key found for this signature in database
GPG key ID: 4345B2060657F330
4 changed files with 64 additions and 32 deletions

View file

@ -6,6 +6,8 @@ These should be documented so people know how to customize their pages.
If you change one of these identifiers, you must update the documentation.
*/
import filterTests from '../../support/filterTests';
const identifiers = [
'header', // The entire header component
'footer', // The entire footer component
@ -16,29 +18,31 @@ const identifiers = [
'#follow-button', // The follow button
];
describe(`Has correct identifiers for overrides`, () => {
it('Can visit the page', () => {
cy.visit('http://localhost:8080/');
});
filterTests(['desktop'], () => {
describe(`Has correct identifiers for overrides`, () => {
it('Can visit the page', () => {
cy.visit('http://localhost:8080/');
});
// Loop over each identifier and verify it exists.
identifiers.forEach((identifier) => {
it(`Has identifier: ${identifier}`, () => {
cy.get(identifier).should('be.visible');
// Loop over each identifier and verify it exists.
identifiers.forEach((identifier) => {
it(`Has identifier: ${identifier}`, () => {
cy.get(identifier).should('be.visible');
});
});
// Followers
const followersCollection = '#followers-collection';
it(`Has identifier: ${followersCollection}`, () => {
cy.contains('Followers').click();
cy.get(followersCollection).should('be.visible');
});
// Modal
const modalContainer = '#modal-container';
it(`Has identifier ${modalContainer}`, () => {
cy.contains('Notify').click();
cy.get(modalContainer, { timeout: 2000 }).should('be.visible');
});
});
// Followers
const followersCollection = '#followers-collection';
it(`Has identifier: ${followersCollection}`, () => {
cy.contains('Followers').click();
cy.get(followersCollection).should('be.visible');
});
// Modal
const modalContainer = '#modal-container';
it(`Has identifier ${modalContainer}`, () => {
cy.contains('Notify').click();
cy.get(modalContainer, { timeout: 2000 }).should('be.visible');
});
});

View file

@ -6,19 +6,23 @@ These should be documented so people know how to customize their pages.
If you change one of these identifiers, you must update the documentation.
*/
import filterTests from '../../support/filterTests';
const identifiers = [
'#chat-container', // The entire chat container component
];
describe(`Has correct identifiers for overrides`, () => {
it('Can visit the page', () => {
cy.visit('http://localhost:8080/');
});
filterTests(['desktop'], () => {
describe(`Has correct identifiers for overrides`, () => {
it('Can visit the page', () => {
cy.visit('http://localhost:8080/');
});
// Loop over each identifier and verify it exists.
identifiers.forEach((identifier) => {
it(`Has identifier: ${identifier}`, () => {
cy.get(identifier).should('be.visible');
// Loop over each identifier and verify it exists.
identifiers.forEach((identifier) => {
it(`Has identifier: ${identifier}`, () => {
cy.get(identifier).should('be.visible');
});
});
});
});

View file

@ -0,0 +1,24 @@
/// <reference types="Cypress" />
/**
* Filter Cypress tests based on a given tag or tags. If no tags are present, run tests.
*
* @param {[string]} definedTags An array of tags
* @param {Function} runTest All tests captured within a Cypress run
* @example npm run open --env tags=api
* @example npm run open --env tags=api/ui
*/
const filterTests = (definedTags, runTest) => {
if (Cypress.env('tags')) {
const tags = Cypress.env('tags').split('/');
const found = definedTags.some(($definedTag) => tags.includes($definedTag));
if (found) {
runTest();
}
} else {
// runTest();
}
};
export default filterTests;

View file

@ -42,7 +42,7 @@ SERVER_PID=$!
pushd test/automated/browser
# Run cypress browser tests for desktop
npx cypress run --group "desktop-offline" --ci-build-id $BUILD_ID --tag "desktop,offline" --record --key e9c8b547-7a8f-452d-8c53-fd7531491e3b --spec "cypress/e2e/offline/*.cy.js"
npx cypress run --group "desktop-offline" --env tags=desktop --ci-build-id $BUILD_ID --tag "desktop,offline" --record --key e9c8b547-7a8f-452d-8c53-fd7531491e3b --spec "cypress/e2e/offline/*.cy.js"
# Run cypress browser tests for mobile
npx cypress run --group "mobile-offline" --ci-build-id $BUILD_ID --tag "mobile,offline" --record --key e9c8b547-7a8f-452d-8c53-fd7531491e3b --spec "cypress/e2e/offline/*.cy.js" --config viewportWidth=375,viewportHeight=667
@ -62,6 +62,6 @@ trap finish EXIT SIGHUP SIGINT SIGTERM SIGQUIT SIGABRT SIGTERM
sleep 20
# Run cypress browser tests for desktop
npx cypress run --group "desktop-online" --ci-build-id $BUILD_ID --tag "desktop,online" --record --key e9c8b547-7a8f-452d-8c53-fd7531491e3b --spec "cypress/e2e/online/*.cy.js"
npx cypress run --group "desktop-online" --env tags=desktop --ci-build-id $BUILD_ID --tag "desktop,online" --record --key e9c8b547-7a8f-452d-8c53-fd7531491e3b --spec "cypress/e2e/online/*.cy.js"
# Run cypress browser tests for mobile
npx cypress run --group "mobile-online" --ci-build-id $BUILD_ID --tag "mobile,online" --record --key e9c8b547-7a8f-452d-8c53-fd7531491e3b --spec "cypress/e2e/online/*.cy.js" --config viewportWidth=375,viewportHeight=667