mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-09-21 00:09:51 +02:00
#3061 Fixing unit tests
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
@@ -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": {
|
||||
|
@@ -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 () {
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
|
@@ -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';
|
||||
@@ -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
|
||||
{
|
||||
@@ -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,
|
||||
@@ -138,7 +153,7 @@ export const addDiagrams = () => {
|
||||
},
|
||||
c4Detector
|
||||
);
|
||||
registerDiagram(
|
||||
registerDiagramAndDetector(
|
||||
'class',
|
||||
{
|
||||
parser: classParser,
|
||||
@@ -155,7 +170,7 @@ export const addDiagrams = () => {
|
||||
},
|
||||
classDetector
|
||||
);
|
||||
registerDiagram(
|
||||
registerDiagramAndDetector(
|
||||
'classDiagram',
|
||||
{
|
||||
parser: classParser,
|
||||
@@ -172,7 +187,7 @@ export const addDiagrams = () => {
|
||||
},
|
||||
classDetectorV2
|
||||
);
|
||||
registerDiagram(
|
||||
registerDiagramAndDetector(
|
||||
'er',
|
||||
{
|
||||
parser: erParser,
|
||||
@@ -182,7 +197,7 @@ export const addDiagrams = () => {
|
||||
},
|
||||
erDetector
|
||||
);
|
||||
registerDiagram(
|
||||
registerDiagramAndDetector(
|
||||
'gantt',
|
||||
{
|
||||
parser: ganttParser,
|
||||
@@ -192,7 +207,7 @@ export const addDiagrams = () => {
|
||||
},
|
||||
ganttDetector
|
||||
);
|
||||
registerDiagram(
|
||||
registerDiagramAndDetector(
|
||||
'info',
|
||||
{
|
||||
parser: infoParser,
|
||||
@@ -202,7 +217,7 @@ export const addDiagrams = () => {
|
||||
},
|
||||
infoDetector
|
||||
);
|
||||
registerDiagram(
|
||||
registerDiagramAndDetector(
|
||||
'pie',
|
||||
{
|
||||
parser: pieParser,
|
||||
@@ -212,7 +227,7 @@ export const addDiagrams = () => {
|
||||
},
|
||||
pieDetector
|
||||
);
|
||||
registerDiagram(
|
||||
registerDiagramAndDetector(
|
||||
'requirement',
|
||||
{
|
||||
parser: requirementParser,
|
||||
@@ -222,7 +237,7 @@ export const addDiagrams = () => {
|
||||
},
|
||||
requirementDetector
|
||||
);
|
||||
registerDiagram(
|
||||
registerDiagramAndDetector(
|
||||
'sequence',
|
||||
{
|
||||
parser: sequenceParser,
|
||||
@@ -245,7 +260,7 @@ export const addDiagrams = () => {
|
||||
},
|
||||
sequenceDetector
|
||||
);
|
||||
registerDiagram(
|
||||
registerDiagramAndDetector(
|
||||
'state',
|
||||
{
|
||||
parser: stateParser,
|
||||
@@ -262,7 +277,7 @@ export const addDiagrams = () => {
|
||||
},
|
||||
stateDetector
|
||||
);
|
||||
registerDiagram(
|
||||
registerDiagramAndDetector(
|
||||
'stateDiagram',
|
||||
{
|
||||
parser: stateParser,
|
||||
@@ -279,7 +294,7 @@ export const addDiagrams = () => {
|
||||
},
|
||||
stateDetectorV2
|
||||
);
|
||||
registerDiagram(
|
||||
registerDiagramAndDetector(
|
||||
'journey',
|
||||
{
|
||||
parser: journeyParser,
|
||||
@@ -294,7 +309,7 @@ export const addDiagrams = () => {
|
||||
journeyDetector
|
||||
);
|
||||
|
||||
registerDiagram(
|
||||
registerDiagramAndDetector(
|
||||
'flowchart',
|
||||
{
|
||||
parser: flowParser,
|
||||
@@ -314,7 +329,7 @@ export const addDiagrams = () => {
|
||||
},
|
||||
flowDetector
|
||||
);
|
||||
registerDiagram(
|
||||
registerDiagramAndDetector(
|
||||
'flowchart-v2',
|
||||
{
|
||||
parser: flowParser,
|
||||
@@ -335,7 +350,7 @@ export const addDiagrams = () => {
|
||||
},
|
||||
flowDetectorV2
|
||||
);
|
||||
registerDiagram(
|
||||
registerDiagramAndDetector(
|
||||
'gitGraph',
|
||||
{ parser: gitGraphParser, db: gitGraphDb, renderer: gitGraphRenderer, styles: gitGraphStyles },
|
||||
gitGraphDetector
|
||||
|
@@ -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,
|
||||
|
@@ -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();
|
||||
|
@@ -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;
|
||||
|
||||
@@ -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' +
|
||||
|
1265
pnpm-lock.yaml
generated
1265
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user