139 lines
3.9 KiB
JavaScript
Raw Normal View History

const utf8ToB64 = (str) => {
return window.btoa(unescape(encodeURIComponent(str)));
};
2022-11-04 13:05:46 +01:00
const batchId = 'mermid-batch' + new Date().getTime();
export const mermaidUrl = (graphStr, options, api) => {
const obj = {
code: graphStr,
mermaid: options,
2019-09-18 18:25:06 +02:00
};
const objStr = JSON.stringify(obj);
let url = 'http://localhost:9000/e2e.html?graph=' + utf8ToB64(objStr);
if (api) {
2019-09-18 18:25:06 +02:00
url = 'http://localhost:9000/xss.html?graph=' + graphStr;
}
if (options.listUrl) {
2019-09-18 18:25:06 +02:00
cy.log(options.listId, ' ', url);
}
2019-09-18 18:25:06 +02:00
return url;
};
export const imgSnapshotTest = (graphStr, _options, api = false, validation) => {
cy.log(_options);
2020-08-16 21:49:36 +02:00
const options = Object.assign(_options);
if (!options.fontFamily) {
options.fontFamily = 'courier';
}
if (!options.sequence) {
options.sequence = {};
}
if (!options.sequence || (options.sequence && !options.sequence.actorFontFamily)) {
options.sequence.actorFontFamily = 'courier';
}
if (options.sequence && !options.sequence.noteFontFamily) {
options.sequence.noteFontFamily = 'courier';
}
options.sequence.actorFontFamily = 'courier';
options.sequence.noteFontFamily = 'courier';
options.sequence.messageFontFamily = 'courier';
if (options.sequence && !options.sequence.actorFontFamily) {
options.sequence.actorFontFamily = 'courier';
}
if (!options.fontSize) {
options.fontSize = '16px';
}
const useAppli = Cypress.env('useAppli');
//const useAppli = false;
2022-05-10 20:33:55 +02:00
cy.log('Hello ' + useAppli ? 'Appli' : 'image-snapshot');
const name = (options.name || cy.state('runnable').fullTitle()).replace(/\s+/g, '-');
if (useAppli) {
2022-11-04 13:05:46 +01:00
cy.log('Opening eyes ' + Cypress.spec.name + ' --- ' + name);
2022-05-10 20:33:55 +02:00
cy.eyesOpen({
appName: 'Mermaid',
2022-05-10 20:33:55 +02:00
testName: name,
2022-11-04 13:05:46 +01:00
batchName: Cypress.spec.name,
batchId: batchId + Cypress.spec.name,
2022-05-10 20:33:55 +02:00
});
}
2019-09-18 18:25:06 +02:00
const url = mermaidUrl(graphStr, options, api);
cy.visit(url);
if (validation) cy.get('svg').should(validation);
2019-09-18 18:25:06 +02:00
cy.get('svg');
// Default name to test title
2022-05-10 20:33:55 +02:00
if (useAppli) {
2022-11-04 13:05:46 +01:00
cy.log('Check eyes' + Cypress.spec.name);
2022-05-10 20:33:55 +02:00
cy.eyesCheckWindow('Click!');
2022-11-04 13:05:46 +01:00
cy.log('Closing eyes: ' + Cypress.spec.name);
2022-05-10 20:33:55 +02:00
cy.eyesClose();
} else {
cy.matchImageSnapshot(name);
}
2019-09-18 18:25:06 +02:00
};
export const urlSnapshotTest = (url, _options, api = false, validation) => {
cy.log(_options);
const options = Object.assign(_options);
if (!options.fontFamily) {
options.fontFamily = 'courier';
}
if (!options.sequence) {
options.sequence = {};
}
if (!options.sequence || (options.sequence && !options.sequence.actorFontFamily)) {
options.sequence.actorFontFamily = 'courier';
}
if (options.sequence && !options.sequence.noteFontFamily) {
options.sequence.noteFontFamily = 'courier';
}
options.sequence.actorFontFamily = 'courier';
options.sequence.noteFontFamily = 'courier';
options.sequence.messageFontFamily = 'courier';
if (options.sequence && !options.sequence.actorFontFamily) {
options.sequence.actorFontFamily = 'courier';
}
if (!options.fontSize) {
options.fontSize = '16px';
}
const useAppli = Cypress.env('useAppli');
cy.log('Hello ' + useAppli ? 'Appli' : 'image-snapshot');
const name = (options.name || cy.state('runnable').fullTitle()).replace(/\s+/g, '-');
if (useAppli) {
2022-11-04 13:05:46 +01:00
cy.log('Opening eyes 2' + Cypress.spec.name);
cy.eyesOpen({
appName: 'Mermaid',
testName: name,
2022-11-04 13:05:46 +01:00
batchName: Cypress.spec.name,
batchId: batchId + Cypress.spec.name,
});
}
cy.visit(url);
if (validation) cy.get('svg').should(validation);
cy.get('body');
// Default name to test title
if (useAppli) {
2022-11-04 13:05:46 +01:00
cy.log('Check eyes 2' + Cypress.spec.name);
cy.eyesCheckWindow('Click!');
2022-11-04 13:05:46 +01:00
cy.log('Closing eyes 2' + Cypress.spec.name);
cy.eyesClose();
} else {
cy.matchImageSnapshot(name);
}
};
export const renderGraph = (graphStr, options, api) => {
const url = mermaidUrl(graphStr, options, api);
cy.visit(url);
};