feat(approval): add task workflow and waiver decisions
This commit is contained in:
48
web/tests/approval-task-components-compile.test.mjs
Normal file
48
web/tests/approval-task-components-compile.test.mjs
Normal file
@@ -0,0 +1,48 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import { readFileSync } from 'node:fs'
|
||||
import test from 'node:test'
|
||||
import { fileURLToPath } from 'node:url'
|
||||
|
||||
import {
|
||||
compileScript,
|
||||
compileStyle,
|
||||
compileTemplate,
|
||||
parse
|
||||
} from '@vue/compiler-sfc'
|
||||
|
||||
const componentFiles = [
|
||||
'../src/components/approval/ApprovalTaskQueue.vue',
|
||||
'../src/components/approval/ApprovalTaskWorkspace.vue',
|
||||
'../src/components/approval/ApprovalAssignmentDialog.vue',
|
||||
'../src/components/approval/ApprovalParticipantsDialog.vue',
|
||||
'../src/components/approval/ApprovalBatchResultPanel.vue'
|
||||
]
|
||||
|
||||
for (const relativeFile of componentFiles) {
|
||||
test(`${relativeFile} 可以独立编译`, () => {
|
||||
const filename = fileURLToPath(new URL(relativeFile, import.meta.url))
|
||||
const source = readFileSync(filename, 'utf8')
|
||||
const parsed = parse(source, { filename })
|
||||
assert.deepEqual(parsed.errors, [])
|
||||
|
||||
const id = `approval-${relativeFile.replace(/\W+/g, '-')}`
|
||||
const script = compileScript(parsed.descriptor, { id })
|
||||
const template = compileTemplate({
|
||||
source: parsed.descriptor.template?.content || '',
|
||||
filename,
|
||||
id,
|
||||
compilerOptions: { bindingMetadata: script.bindings }
|
||||
})
|
||||
assert.deepEqual(template.errors, [])
|
||||
|
||||
for (const style of parsed.descriptor.styles) {
|
||||
const compiledStyle = compileStyle({
|
||||
source: style.content,
|
||||
filename,
|
||||
id,
|
||||
scoped: style.scoped
|
||||
})
|
||||
assert.deepEqual(compiledStyle.errors, [])
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user