diff --git a/cypress.config.ts b/cypress.config.ts index 6ebb75cdf..5315a5ea6 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -19,16 +19,19 @@ export default eyesPlugin( } return launchOptions; }); - addMatchImageSnapshotPlugin(on, config); // copy any needed variables from process.env to config.env config.env.useAppli = process.env.USE_APPLI ? true : false; + config.env.useArgos = !!process.env.ARGOS_TOKEN; - // Argos - registerArgosTask(on, config, { - uploadToArgos: !!process.env.CI, - token: process.env.ARGOS_TOKEN, - }); - + if (config.env.useArgos) { + // Argos + registerArgosTask(on, config, { + uploadToArgos: !!process.env.CI, + token: process.env.ARGOS_TOKEN, + }); + } else { + addMatchImageSnapshotPlugin(on, config); + } // do not forget to return the changed config object! return config; }, diff --git a/cypress/helpers/util.ts b/cypress/helpers/util.ts index d6ceb85f1..17bebeaef 100644 --- a/cypress/helpers/util.ts +++ b/cypress/helpers/util.ts @@ -95,19 +95,8 @@ export const openURLAndVerifyRendering = ( options: CypressMermaidConfig, validation?: any ): void => { - const useAppli: boolean = Cypress.env('useAppli'); const name: string = (options.name || cy.state('runnable').fullTitle()).replace(/\s+/g, '-'); - if (useAppli) { - cy.log(`Opening eyes ${Cypress.spec.name} --- ${name}`); - cy.eyesOpen({ - appName: 'Mermaid', - testName: name, - batchName: Cypress.spec.name, - batchId: batchId + Cypress.spec.name, - }); - } - cy.visit(url); cy.window().should('have.property', 'rendered', true); cy.get('svg').should('be.visible'); @@ -116,15 +105,28 @@ export const openURLAndVerifyRendering = ( cy.get('svg').should(validation); } - cy.argosScreenshot(name); + verifyScreenshot(name); +}; + +export const verifyScreenshot = (name: string): void => { + const useAppli: boolean = Cypress.env('useAppli'); + const useArgos: boolean = Cypress.env('useArgos'); if (useAppli) { + cy.log(`Opening eyes ${Cypress.spec.name} --- ${name}`); + cy.eyesOpen({ + appName: 'Mermaid', + testName: name, + batchName: Cypress.spec.name, + batchId: batchId + Cypress.spec.name, + }); cy.log(`Check eyes ${Cypress.spec.name}`); cy.eyesCheckWindow('Click!'); cy.log(`Closing eyes ${Cypress.spec.name}`); cy.eyesClose(); + } else if (useArgos) { + cy.argosScreenshot(name); } else { - // Argos will take care of this - // cy.matchImageSnapshot(name); + cy.matchImageSnapshot(name); } }; diff --git a/cypress/integration/other/configuration.spec.js b/cypress/integration/other/configuration.spec.js index 544eab40f..6b9496768 100644 --- a/cypress/integration/other/configuration.spec.js +++ b/cypress/integration/other/configuration.spec.js @@ -1,4 +1,4 @@ -import { renderGraph } from '../../helpers/util.ts'; +import { renderGraph, verifyScreenshot } from '../../helpers/util.ts'; describe('Configuration', () => { describe('arrowMarkerAbsolute', () => { it('should handle default value false of arrowMarkerAbsolute', () => { @@ -120,7 +120,7 @@ describe('Configuration', () => { cy.visit(url); cy.window().should('have.property', 'rendered', true); cy.get('svg').should('be.visible'); - cy.matchImageSnapshot( + verifyScreenshot( 'configuration.spec-should-not-taint-initial-configuration-when-using-multiple-directives' ); }); @@ -145,7 +145,7 @@ describe('Configuration', () => { // none of the diagrams should be error diagrams expect($svg).to.not.contain('Syntax error'); }); - cy.matchImageSnapshot( + verifyScreenshot( 'configuration.spec-should-not-render-error-diagram-if-suppressErrorRendering-is-set' ); }); @@ -162,7 +162,7 @@ describe('Configuration', () => { // some of the diagrams should be error diagrams expect($svg).to.contain('Syntax error'); }); - cy.matchImageSnapshot( + verifyScreenshot( 'configuration.spec-should-render-error-diagram-if-suppressErrorRendering-is-not-set' ); });