collab/mermaid/cypress/integration/rendering/oldShapes.spec.tsblame
View source
6dd74de1import { imgSnapshotTest } from '../../helpers/util';
6dd74de2
6dd74de3const looks = ['classic', 'handDrawn'] as const;
6dd74de4const directions = [
6dd74de5 'TB',
6dd74de6 //'BT',
6dd74de7 'LR',
6dd74de8 //'RL'
6dd74de9] as const;
6dd74de10
6dd74de11const shapesSet1 = ['text', 'card', 'lin-rect', 'diamond', 'hexagon'] as const;
6dd74de12
6dd74de13// removing labelRect, need have alias for it
6dd74de14const shapesSet2 = ['rounded', 'rect', 'start', 'stop'] as const;
6dd74de15
6dd74de16const shapesSet3 = ['fork', 'choice', 'note', 'stadium', 'odd'] as const;
6dd74de17
6dd74de18const shapesSet4 = ['subroutine', 'cylinder', 'circle', 'doublecircle', 'odd'] as const;
6dd74de19
6dd74de20const shapesSet5 = ['anchor', 'lean-r', 'lean-l', 'trap-t', 'trap-b'] as const;
6dd74de21
6dd74de22// Aggregate all shape sets into a single array
6dd74de23const shapesSets = [shapesSet1, shapesSet2, shapesSet3, shapesSet4, shapesSet5] as const;
6dd74de24
6dd74de25looks.forEach((look) => {
6dd74de26 directions.forEach((direction) => {
6dd74de27 shapesSets.forEach((shapesSet) => {
6dd74de28 describe(`Test ${shapesSet.join(', ')} in ${look} look and dir ${direction}`, () => {
6dd74de29 it(`without label`, () => {
6dd74de30 let flowchartCode = `flowchart ${direction}\n`;
6dd74de31 shapesSet.forEach((newShape, index) => {
6dd74de32 flowchartCode += ` n${index} --> n${index}${index}@{ shape: ${newShape} }\n`;
6dd74de33 });
6dd74de34 imgSnapshotTest(flowchartCode, { look });
6dd74de35 });
6dd74de36
6dd74de37 it(`with label`, () => {
6dd74de38 let flowchartCode = `flowchart ${direction}\n`;
6dd74de39 shapesSet.forEach((newShape, index) => {
6dd74de40 flowchartCode += ` n${index} --> n${index}${index}@{ shape: ${newShape}, label: 'This is a label for ${newShape} shape' }\n`;
6dd74de41 });
6dd74de42 imgSnapshotTest(flowchartCode, { look });
6dd74de43 });
6dd74de44
6dd74de45 it(`connect all shapes with each other`, () => {
6dd74de46 let flowchartCode = `flowchart ${direction}\n`;
6dd74de47 shapesSet.forEach((newShape, index) => {
6dd74de48 flowchartCode += ` n${index}${index}@{ shape: ${newShape}, label: 'This is a label for ${newShape} shape' }\n`;
6dd74de49 });
6dd74de50 for (let i = 0; i < shapesSet.length; i++) {
6dd74de51 for (let j = i + 1; j < shapesSet.length; j++) {
6dd74de52 flowchartCode += ` n${i}${i} --> n${j}${j}\n`;
6dd74de53 }
6dd74de54 }
6dd74de55 imgSnapshotTest(flowchartCode, { look });
6dd74de56 });
6dd74de57
6dd74de58 it(`with very long label`, () => {
6dd74de59 let flowchartCode = `flowchart ${direction}\n`;
6dd74de60 shapesSet.forEach((newShape, index) => {
6dd74de61 flowchartCode += ` n${index} --> n${index}${index}@{ shape: ${newShape}, label: 'This is a very very very very very long long long label for ${newShape} shape' }\n`;
6dd74de62 });
6dd74de63 imgSnapshotTest(flowchartCode, { look });
6dd74de64 });
6dd74de65
6dd74de66 it(`with markdown htmlLabels:true`, () => {
6dd74de67 let flowchartCode = `flowchart ${direction}\n`;
6dd74de68 shapesSet.forEach((newShape, index) => {
6dd74de69 flowchartCode += ` n${index} --> n${index}${index}@{ shape: ${newShape}, label: 'This is **bold** </br>and <strong>strong</strong> for ${newShape} shape' }\n`;
6dd74de70 });
6dd74de71 imgSnapshotTest(flowchartCode, { look });
6dd74de72 });
6dd74de73
6dd74de74 it(`with markdown htmlLabels:false`, () => {
6dd74de75 let flowchartCode = `flowchart ${direction}\n`;
6dd74de76 shapesSet.forEach((newShape, index) => {
6dd74de77 flowchartCode += ` n${index} --> n${index}${index}@{ shape: ${newShape}, label: 'This is **bold** </br>and <strong>strong</strong> for ${newShape} shape' }\n`;
6dd74de78 });
6dd74de79 imgSnapshotTest(flowchartCode, {
6dd74de80 look,
6dd74de81 htmlLabels: false,
6dd74de82 flowchart: { htmlLabels: false },
6dd74de83 });
6dd74de84 });
6dd74de85
6dd74de86 it(`with styles`, () => {
6dd74de87 let flowchartCode = `flowchart ${direction}\n`;
6dd74de88 shapesSet.forEach((newShape, index) => {
6dd74de89 flowchartCode += ` n${index} --> n${index}${index}@{ shape: ${newShape}, label: 'new ${newShape} shape' }\n`;
6dd74de90 flowchartCode += ` style n${index}${index} fill:#f9f,stroke:#333,stroke-width:4px \n`;
6dd74de91 });
6dd74de92 imgSnapshotTest(flowchartCode, { look });
6dd74de93 });
6dd74de94
6dd74de95 it(`with classDef`, () => {
6dd74de96 let flowchartCode = `flowchart ${direction}\n`;
6dd74de97 flowchartCode += ` classDef customClazz fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5\n`;
6dd74de98 shapesSet.forEach((newShape, index) => {
6dd74de99 flowchartCode += ` n${index} --> n${index}${index}@{ shape: ${newShape}, label: 'new ${newShape} shape' }\n`;
6dd74de100 flowchartCode += ` n${index}${index}:::customClazz\n`;
6dd74de101 });
6dd74de102 imgSnapshotTest(flowchartCode, { look });
6dd74de103 });
6dd74de104 });
6dd74de105 });
6dd74de106 });
6dd74de107});