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