mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-09-16 05:49:43 +02:00
chore: Support local screenshot testing without applitools or argos
This commit is contained in:
@@ -19,16 +19,19 @@ export default eyesPlugin(
|
|||||||
}
|
}
|
||||||
return launchOptions;
|
return launchOptions;
|
||||||
});
|
});
|
||||||
addMatchImageSnapshotPlugin(on, config);
|
|
||||||
// copy any needed variables from process.env to config.env
|
// copy any needed variables from process.env to config.env
|
||||||
config.env.useAppli = process.env.USE_APPLI ? true : false;
|
config.env.useAppli = process.env.USE_APPLI ? true : false;
|
||||||
|
config.env.useArgos = !!process.env.ARGOS_TOKEN;
|
||||||
|
|
||||||
// Argos
|
if (config.env.useArgos) {
|
||||||
registerArgosTask(on, config, {
|
// Argos
|
||||||
uploadToArgos: !!process.env.CI,
|
registerArgosTask(on, config, {
|
||||||
token: process.env.ARGOS_TOKEN,
|
uploadToArgos: !!process.env.CI,
|
||||||
});
|
token: process.env.ARGOS_TOKEN,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addMatchImageSnapshotPlugin(on, config);
|
||||||
|
}
|
||||||
// do not forget to return the changed config object!
|
// do not forget to return the changed config object!
|
||||||
return config;
|
return config;
|
||||||
},
|
},
|
||||||
|
@@ -95,19 +95,8 @@ export const openURLAndVerifyRendering = (
|
|||||||
options: CypressMermaidConfig,
|
options: CypressMermaidConfig,
|
||||||
validation?: any
|
validation?: any
|
||||||
): void => {
|
): void => {
|
||||||
const useAppli: boolean = Cypress.env('useAppli');
|
|
||||||
const name: string = (options.name || cy.state('runnable').fullTitle()).replace(/\s+/g, '-');
|
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.visit(url);
|
||||||
cy.window().should('have.property', 'rendered', true);
|
cy.window().should('have.property', 'rendered', true);
|
||||||
cy.get('svg').should('be.visible');
|
cy.get('svg').should('be.visible');
|
||||||
@@ -116,15 +105,28 @@ export const openURLAndVerifyRendering = (
|
|||||||
cy.get('svg').should(validation);
|
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) {
|
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.log(`Check eyes ${Cypress.spec.name}`);
|
||||||
cy.eyesCheckWindow('Click!');
|
cy.eyesCheckWindow('Click!');
|
||||||
cy.log(`Closing eyes ${Cypress.spec.name}`);
|
cy.log(`Closing eyes ${Cypress.spec.name}`);
|
||||||
cy.eyesClose();
|
cy.eyesClose();
|
||||||
|
} else if (useArgos) {
|
||||||
|
cy.argosScreenshot(name);
|
||||||
} else {
|
} else {
|
||||||
// Argos will take care of this
|
cy.matchImageSnapshot(name);
|
||||||
// cy.matchImageSnapshot(name);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
import { renderGraph } from '../../helpers/util.ts';
|
import { renderGraph, verifyScreenshot } from '../../helpers/util.ts';
|
||||||
describe('Configuration', () => {
|
describe('Configuration', () => {
|
||||||
describe('arrowMarkerAbsolute', () => {
|
describe('arrowMarkerAbsolute', () => {
|
||||||
it('should handle default value false of arrowMarkerAbsolute', () => {
|
it('should handle default value false of arrowMarkerAbsolute', () => {
|
||||||
@@ -120,7 +120,7 @@ describe('Configuration', () => {
|
|||||||
cy.visit(url);
|
cy.visit(url);
|
||||||
cy.window().should('have.property', 'rendered', true);
|
cy.window().should('have.property', 'rendered', true);
|
||||||
cy.get('svg').should('be.visible');
|
cy.get('svg').should('be.visible');
|
||||||
cy.matchImageSnapshot(
|
verifyScreenshot(
|
||||||
'configuration.spec-should-not-taint-initial-configuration-when-using-multiple-directives'
|
'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
|
// none of the diagrams should be error diagrams
|
||||||
expect($svg).to.not.contain('Syntax error');
|
expect($svg).to.not.contain('Syntax error');
|
||||||
});
|
});
|
||||||
cy.matchImageSnapshot(
|
verifyScreenshot(
|
||||||
'configuration.spec-should-not-render-error-diagram-if-suppressErrorRendering-is-set'
|
'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
|
// some of the diagrams should be error diagrams
|
||||||
expect($svg).to.contain('Syntax error');
|
expect($svg).to.contain('Syntax error');
|
||||||
});
|
});
|
||||||
cy.matchImageSnapshot(
|
verifyScreenshot(
|
||||||
'configuration.spec-should-render-error-diagram-if-suppressErrorRendering-is-not-set'
|
'configuration.spec-should-render-error-diagram-if-suppressErrorRendering-is-not-set'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user