Skip to content

Commit

Permalink
#3061 Fixing unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
knsv committed Sep 26, 2022
1 parent 98ddc95 commit ebdec77
Show file tree
Hide file tree
Showing 10 changed files with 1,177 additions and 279 deletions.
1 change: 1 addition & 0 deletions .vite/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ const main = async () => {

if (watch) {
build(getBuildConfig({ minify: false, watch, entryName: 'mermaid' }));
build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' }));
} else {
void main();
}
3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,16 +67,19 @@
},
"dependencies": {
"@braintree/sanitize-url": "^6.0.0",
"@types/node": "^18.7.21",
"d3": "^7.0.0",
"dagre": "^0.8.5",
"dagre-d3": "^0.6.4",
"dompurify": "2.4.0",
"fast-clone": "^1.5.13",
"graphlib": "^2.1.8",
"jest": "^29.0.3",
"khroma": "^2.0.0",
"lodash": "^4.17.21",
"moment-mini": "^2.24.0",
"non-layered-tidy-tree-layout": "^2.0.2",
"rollup": "^2.79.1",
"stylis": "^4.1.2"
},
"devDependencies": {
Expand Down
12 changes: 11 additions & 1 deletion packages/mermaid-mindmap/src/mindmap.spec.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
import { parser as mindmap } from './parser/mindmap';
import * as mindmapDB from './mindmapDb';
import { setLogLevel } from '../../diagram-api/diagramAPI';
import { injectUtils } from './mermaidUtils';
// Todo fix utils functions for tests
import {
log,
setLogLevel,
getConfig,
sanitizeText,
setupGraphViewBox,
} from '../../mermaid/src/diagram-api/diagramAPI';

injectUtils(log, setLogLevel, getConfig, sanitizeText, setupGraphViewBox);

describe('when parsing a mindmap ', function () {
beforeEach(function () {
Expand Down
3 changes: 2 additions & 1 deletion packages/mermaid/src/Diagram.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@ export class Diagram {
this.type = detectType(txt, cnf);
const diagram = getDiagram(this.type);
log.debug('Type ' + this.type);
// console.log('Type ' + this.type);
// Setup diagram
this.db = diagram.db;
this.db.clear?.();
this.renderer = diagram.renderer;
this.parser = diagram.parser;
console.log('Setting db to !', this.db);
// console.log('Setting db to !', this.db);
this.parser.parser.yy = this.db;
if (diagram.init) {
diagram.init(cnf);
Expand Down
2 changes: 2 additions & 0 deletions packages/mermaid/src/diagram-api/detectType.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ const detectors: Record<string, DiagramDetector> = {};
export const detectType = function (text: string, config?: MermaidConfig): string {
text = text.replace(directive, '').replace(anyComment, '\n');

// console.log(detectors);

for (const [key, detector] of Object.entries(detectors)) {
if (detector(text, config)) {
return key;
Expand Down
53 changes: 34 additions & 19 deletions packages/mermaid/src/diagram-api/diagram-orchestration.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
import { registerDiagram } from './diagramAPI';
import {
registerDiagram,
registerDetector,
DiagramDefinition,
DiagramDetector,
} from './diagramAPI';

// // @ts-ignore: TODO Fix ts errors
// import mindmapParser from '../diagrams/mindmap/parser/mindmap';
Expand Down Expand Up @@ -101,8 +106,17 @@ import { setConfig } from '../config';
import errorRenderer from '../diagrams/error/errorRenderer';
import errorStyles from '../diagrams/error/styles';

const registerDiagramAndDetector = (
id: string,
diagram: DiagramDefinition,
detector: DiagramDetector
) => {
registerDiagram(id, diagram);
registerDetector(id, detector);
};

export const addDiagrams = () => {
registerDiagram(
registerDiagramAndDetector(
'error',
// Special diagram with error messages but setup as a regular diagram
{
Expand All @@ -122,10 +136,11 @@ export const addDiagrams = () => {
init: () => {
// no op
},
},
(text) => text.toLowerCase().trim() === 'error'
}
);
registerDiagram(
registerDetector('error', (text) => text.toLowerCase().trim() === 'error');

registerDiagramAndDetector(
'c4',
{
parser: c4Parser,
Expand All @@ -138,7 +153,7 @@ export const addDiagrams = () => {
},
c4Detector
);
registerDiagram(
registerDiagramAndDetector(
'class',
{
parser: classParser,
Expand All @@ -155,7 +170,7 @@ export const addDiagrams = () => {
},
classDetector
);
registerDiagram(
registerDiagramAndDetector(
'classDiagram',
{
parser: classParser,
Expand All @@ -172,7 +187,7 @@ export const addDiagrams = () => {
},
classDetectorV2
);
registerDiagram(
registerDiagramAndDetector(
'er',
{
parser: erParser,
Expand All @@ -182,7 +197,7 @@ export const addDiagrams = () => {
},
erDetector
);
registerDiagram(
registerDiagramAndDetector(
'gantt',
{
parser: ganttParser,
Expand All @@ -192,7 +207,7 @@ export const addDiagrams = () => {
},
ganttDetector
);
registerDiagram(
registerDiagramAndDetector(
'info',
{
parser: infoParser,
Expand All @@ -202,7 +217,7 @@ export const addDiagrams = () => {
},
infoDetector
);
registerDiagram(
registerDiagramAndDetector(
'pie',
{
parser: pieParser,
Expand All @@ -212,7 +227,7 @@ export const addDiagrams = () => {
},
pieDetector
);
registerDiagram(
registerDiagramAndDetector(
'requirement',
{
parser: requirementParser,
Expand All @@ -222,7 +237,7 @@ export const addDiagrams = () => {
},
requirementDetector
);
registerDiagram(
registerDiagramAndDetector(
'sequence',
{
parser: sequenceParser,
Expand All @@ -245,7 +260,7 @@ export const addDiagrams = () => {
},
sequenceDetector
);
registerDiagram(
registerDiagramAndDetector(
'state',
{
parser: stateParser,
Expand All @@ -262,7 +277,7 @@ export const addDiagrams = () => {
},
stateDetector
);
registerDiagram(
registerDiagramAndDetector(
'stateDiagram',
{
parser: stateParser,
Expand All @@ -279,7 +294,7 @@ export const addDiagrams = () => {
},
stateDetectorV2
);
registerDiagram(
registerDiagramAndDetector(
'journey',
{
parser: journeyParser,
Expand All @@ -294,7 +309,7 @@ export const addDiagrams = () => {
journeyDetector
);

registerDiagram(
registerDiagramAndDetector(
'flowchart',
{
parser: flowParser,
Expand All @@ -314,7 +329,7 @@ export const addDiagrams = () => {
},
flowDetector
);
registerDiagram(
registerDiagramAndDetector(
'flowchart-v2',
{
parser: flowParser,
Expand All @@ -335,7 +350,7 @@ export const addDiagrams = () => {
},
flowDetectorV2
);
registerDiagram(
registerDiagramAndDetector(
'gitGraph',
{ parser: gitGraphParser, db: gitGraphDb, renderer: gitGraphRenderer, styles: gitGraphStyles },
gitGraphDetector
Expand Down
2 changes: 1 addition & 1 deletion packages/mermaid/src/diagram-api/diagramAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export const registerDetector = (id: string, detector: DiagramDetector) => {
export const registerDiagram = (
id: string,
diagram: DiagramDefinition,
callback: (
callback?: (
_log: any,
_setLogLevel: any,
_getConfig: any,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1827,7 +1827,7 @@ sequenceDiagram
participant Alice
`;

// diagram.parse(str);
diagram.parse(str);
diagram.renderer.draw(str, 'tst', '1.2.3', diagram);

const { bounds, models } = diagram.renderer.bounds.getBounds();
Expand Down
3 changes: 2 additions & 1 deletion packages/mermaid/src/mermaid.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import mermaid from './mermaid';
import { mermaidAPI } from './mermaidAPI';
import './diagram-api/diagram-orchestration';
import { vi, describe, it, beforeEach, afterEach, expect } from 'vitest';
const spyOn = vi.spyOn;

Expand Down Expand Up @@ -67,7 +68,7 @@ describe('when using mermaid and ', function () {
expect(() => mermaid.parse('graph TQ;A--x|text including URL space|B;')).toThrow();
});

it('should not throw for a valid sequenceDiagram definition', function () {
it('should not throw for a valid sequenceDiagram definition (mmds1)', function () {
const text =
'sequenceDiagram\n' +
'Alice->Bob: Hello Bob, how are you?\n\n' +
Expand Down
Loading

0 comments on commit ebdec77

Please sign in to comment.