Files
yidaima/RuoYi-Vue/easycode-web/src/components/appModuleDiagramView.test.mjs
2026-07-07 14:17:47 +08:00

49 lines
2.0 KiB
JavaScript

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)
})