feat: add module diagram editor controls
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
import test from 'node:test'
|
||||
import assert from 'node:assert/strict'
|
||||
import { readFileSync } from 'node:fs'
|
||||
import { fileURLToPath } from 'node:url'
|
||||
import { dirname, resolve } from 'node:path'
|
||||
|
||||
const currentDir = dirname(fileURLToPath(import.meta.url))
|
||||
|
||||
function readComponent(name) {
|
||||
return readFileSync(resolve(currentDir, name), 'utf8')
|
||||
}
|
||||
|
||||
test('app module diagram view exposes shared editor controls', () => {
|
||||
const source = readComponent('AppModuleDiagramView.vue')
|
||||
|
||||
assert.equal(source.includes('sourceMode'), true)
|
||||
assert.equal(source.includes('outlineText'), true)
|
||||
assert.equal(source.includes('layoutOptions'), true)
|
||||
assert.equal(source.includes('update:sourceMode'), true)
|
||||
assert.equal(source.includes('update:outlineText'), true)
|
||||
assert.equal(source.includes('update:layoutOptions'), true)
|
||||
assert.equal(source.includes('自动蓝图'), true)
|
||||
assert.equal(source.includes('缩进结构'), true)
|
||||
assert.equal(source.includes('标准'), true)
|
||||
assert.equal(source.includes('宽松'), true)
|
||||
assert.equal(source.includes('紧凑'), true)
|
||||
assert.equal(source.includes('横向'), true)
|
||||
assert.equal(source.includes('竖向'), true)
|
||||
})
|
||||
|
||||
test('app module diagram view supports svg and png export from the same graph', () => {
|
||||
const source = readComponent('AppModuleDiagramView.vue')
|
||||
|
||||
assert.equal(source.includes('exportSvg'), true)
|
||||
assert.equal(source.includes('exportPng'), true)
|
||||
assert.equal(source.includes('buildAppModuleExportSvg(graph.value)'), true)
|
||||
assert.equal(source.includes('saveBlob'), true)
|
||||
assert.equal(source.includes('system-module-diagram.svg'), true)
|
||||
assert.equal(source.includes('system-module-diagram.png'), true)
|
||||
})
|
||||
|
||||
test('app module diagram view renders outline warnings next to the editor', () => {
|
||||
const source = readComponent('AppModuleDiagramView.vue')
|
||||
|
||||
assert.equal(source.includes('outlineWarnings'), true)
|
||||
assert.equal(source.includes('module-warning-list'), true)
|
||||
assert.equal(source.includes('v-for="warning in outlineWarnings"'), true)
|
||||
})
|
||||
Reference in New Issue
Block a user