1.0 KB35 lines
Blame
1import mermaid from 'mermaid';
2import { diagramData } from './index.js';
3
4describe('examples', () => {
5 beforeAll(async () => {
6 // To trigger the diagram registration
7 await mermaid.registerExternalDiagrams([]);
8 });
9
10 it('should have examples for each diagrams', () => {
11 const skippedDiagrams = [
12 // These diagrams have no examples
13 'error',
14 'info',
15 '---',
16 // These diagrams have v2 versions, with examples
17 'class',
18 'graph',
19 'flowchart-elk',
20 'flowchart',
21 'state',
22 ];
23 const diagrams = mermaid
24 .getRegisteredDiagramsMetadata()
25 .filter((d) => !skippedDiagrams.includes(d.id));
26 expect(diagrams.length).toBeGreaterThan(0);
27 for (const diagram of diagrams) {
28 const data = diagramData.find((d) => d.id === diagram.id)!;
29 expect(data, `Example for ${diagram.id} is not defined`).toBeDefined();
30 expect(data.examples.length).toBeGreaterThan(0);
31 expect(data.examples.filter((e) => e.isDefault).length).toBe(1);
32 }
33 });
34});
35