1import assert from 'node:assert/strict'2import test from 'node:test'3import { diagramTypes } from '../src/diagram-types.js'4import {5 editorLanguageFor,6 GENERIC_LANGUAGE_ID,7 JSON5_LANGUAGE_ID,8} from '../src/editor-languages.js'910test('routes structured diagram sources to their Monaco languages', () => {11 for (const type of ['excalidraw', 'vega', 'vegalite']) {12 assert.equal(editorLanguageFor(type), 'json')13 }14 for (const type of ['bpmn', 'diagramsnet', 'umlet']) {15 assert.equal(editorLanguageFor(type), 'xml')16 }17 assert.equal(editorLanguageFor('wireviz'), 'yaml')18 assert.equal(editorLanguageFor('dbml'), 'sql')19 assert.equal(editorLanguageFor('bytefield'), 'clojure')20 assert.equal(editorLanguageFor('wavedrom'), JSON5_LANGUAGE_ID)21})2223test('routes every remaining known type to the generic diagram language', () => {24 const specialized = new Set([25 'excalidraw', 'vega', 'vegalite', 'bpmn', 'diagramsnet', 'umlet',26 'wireviz', 'dbml', 'bytefield', 'wavedrom',27 ])28 const genericTypes = diagramTypes29 .map(({ id }) => id)30 .filter(type => !specialized.has(type))3132 assert.equal(diagramTypes.length, 32)33 assert.ok(genericTypes.length > 0)34 for (const type of genericTypes) {35 assert.equal(editorLanguageFor(type), GENERIC_LANGUAGE_ID)36 }37})