refactor: consolidate finance workflow modules
This commit is contained in:
39
web/tests/document-protocol-constants.test.mjs
Normal file
39
web/tests/document-protocol-constants.test.mjs
Normal file
@@ -0,0 +1,39 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import test from 'node:test'
|
||||
|
||||
import {
|
||||
DOCUMENT_TYPE_APPLICATION,
|
||||
DOCUMENT_TYPE_LABELS,
|
||||
DOCUMENT_TYPE_REIMBURSEMENT,
|
||||
INLINE_APPLICATION_STATUS_LABELS,
|
||||
resolveDocumentTypeLabel
|
||||
} from '../src/constants/documentProtocol.js'
|
||||
import { readSourceFile, readSourceSurface } from './helpers/sourceSurface.mjs'
|
||||
|
||||
test('document protocol constants centralize document types and labels', () => {
|
||||
assert.equal(DOCUMENT_TYPE_APPLICATION, 'application')
|
||||
assert.equal(DOCUMENT_TYPE_REIMBURSEMENT, 'reimbursement')
|
||||
assert.equal(DOCUMENT_TYPE_LABELS[DOCUMENT_TYPE_APPLICATION], '申请单')
|
||||
assert.equal(DOCUMENT_TYPE_LABELS[DOCUMENT_TYPE_REIMBURSEMENT], '报销单')
|
||||
assert.equal(resolveDocumentTypeLabel('application'), '申请单')
|
||||
assert.equal(resolveDocumentTypeLabel('expense_application'), '申请单')
|
||||
assert.equal(resolveDocumentTypeLabel('unknown', '单据'), '单据')
|
||||
})
|
||||
|
||||
test('inline application status labels live in the shared document protocol', () => {
|
||||
assert.equal(INLINE_APPLICATION_STATUS_LABELS.draft, '草稿')
|
||||
assert.equal(INLINE_APPLICATION_STATUS_LABELS.submitted, '审批中')
|
||||
assert.equal(INLINE_APPLICATION_STATUS_LABELS.pending_payment, '待付款')
|
||||
})
|
||||
|
||||
test('source surface helper loads one or more source files for source assertions', () => {
|
||||
const model = readSourceFile('constants/documentProtocol.js')
|
||||
assert.match(model, /DOCUMENT_TYPE_APPLICATION/)
|
||||
|
||||
const combined = readSourceSurface([
|
||||
'constants/documentProtocol.js',
|
||||
'composables/workbenchAiMode/workbenchAiApplicationPreviewModel.js'
|
||||
])
|
||||
assert.match(combined, /INLINE_APPLICATION_STATUS_LABELS/)
|
||||
assert.match(combined, /normalizeInlineApplicationStatusLabel/)
|
||||
})
|
||||
Reference in New Issue
Block a user