1import { describe, expect, it } from 'vitest'2import example from '../../../examples/diagrams/venn.excalidraw?raw'3import { excalidrawAdapter } from '../src/adapters/excalidraw'45const request = (source: string) => ({ engine: 'excalidraw' as const, source, format: 'svg' as const, options: {}, metadata: { title: '', description: '' }, presentation: { background: '', padding: 0, frame: false } })67describe('native Excalidraw adapter', () => {8 it('renders the repository fixture to SVG', async () => {9 const result = await excalidrawAdapter.render(request(example), new AbortController().signal)10 expect(result.body).toContain('<svg')11 expect(result.body).toContain('<path')12 expect(result.body).toContain('<text')13 expect(result.runtime).toBe('edge-js')14 })1516 it('rejects external resources and oversized scenes', async () => {17 await expect(excalidrawAdapter.render(request(JSON.stringify({ elements: [{ type: 'image', src: 'https://example.com/a.png' }] })), new AbortController().signal)).rejects.toMatchObject({ code: 'unsafe_include' })18 await expect(excalidrawAdapter.render(request(JSON.stringify({ elements: [{ type: 'text', link: 'javascript:alert(1)' }] })), new AbortController().signal)).rejects.toMatchObject({ code: 'unsafe_include' })19 await expect(excalidrawAdapter.render(request('x'.repeat(524_289)), new AbortController().signal)).rejects.toMatchObject({ code: 'source_too_large' })20 })21})