| 1 | import type { ResolvedSlidevOptions } from '@slidev/types' |
| 2 | import type { VirtualModuleContext } from '../packages/slidev/node/virtual/types' |
| 3 | import { describe, expect, it } from 'vitest' |
| 4 | import { templateSetups } from '../packages/slidev/node/virtual/setups' |
| 5 | |
| 6 | describe('mermaid-renderer virtual module', () => { |
| 7 | it('registers /@slidev/setups/mermaid-renderer', () => { |
| 8 | const ids = templateSetups.map(t => t.id) |
| 9 | expect(ids).toContain('/@slidev/setups/mermaid-renderer') |
| 10 | }) |
| 11 | |
| 12 | it('generates content with mermaid-renderer glob', () => { |
| 13 | const template = templateSetups.find(t => t.id === '/@slidev/setups/mermaid-renderer')! |
| 14 | const context: VirtualModuleContext = { |
| 15 | makeAbsoluteImportGlob: () => '/node_modules/.slidev/virtual/setups/mermaid-renderer.test.ts', |
| 16 | resolve: async () => null, |
| 17 | } |
| 18 | const content = template.getContent.call(context, { |
| 19 | userRoot: '/user/project', |
| 20 | roots: ['/user/project'], |
| 21 | } as ResolvedSlidevOptions) |
| 22 | |
| 23 | expect(content).toContain('mermaid-renderer') |
| 24 | expect(content).toContain('import __slidev_setup_0 from "/node_modules/.slidev/virtual/setups/mermaid-renderer.test.ts"') |
| 25 | expect(content).toContain('export default') |
| 26 | expect(content).toContain('filter(Boolean)') |
| 27 | }) |
| 28 | |
| 29 | it('comes after mermaid in templateSetups', () => { |
| 30 | const ids = templateSetups.map(t => t.id) |
| 31 | const mermaidIdx = ids.indexOf('/@slidev/setups/mermaid') |
| 32 | const rendererIdx = ids.indexOf('/@slidev/setups/mermaid-renderer') |
| 33 | expect(mermaidIdx).toBeGreaterThanOrEqual(0) |
| 34 | expect(rendererIdx).toBeGreaterThan(mermaidIdx) |
| 35 | }) |
| 36 | }) |
| 37 |