refactor(frontend): split large reimbursement and audit modules

This commit is contained in:
caoxiaozhu
2026-05-21 23:53:03 +08:00
parent 2908dda024
commit f6f787ff38
53 changed files with 15637 additions and 14179 deletions

View File

@@ -0,0 +1,43 @@
import assert from 'node:assert/strict'
import { readFileSync } from 'node:fs'
import test from 'node:test'
import { fileURLToPath } from 'node:url'
import { checkBackendHealth, useBackendHealth } from '../src/composables/useBackendHealth.js'
const routerScript = readFileSync(
fileURLToPath(new URL('../src/router/index.js', import.meta.url)),
'utf8'
)
test('app route guard allows stale healthy state when health check times out', () => {
assert.match(routerScript, /checkBackendHealth\(\{\s*allowStaleOnTimeout:\s*true\s*\}\)/)
})
test('backend health timeout does not block app rendering when stale fallback is allowed', async () => {
const originalFetch = global.fetch
global.fetch = async (_url, options = {}) =>
new Promise((_, reject) => {
options.signal.addEventListener('abort', () => {
const error = new Error('aborted')
error.name = 'AbortError'
reject(error)
})
})
try {
const ok = await checkBackendHealth({
force: true,
allowStaleOnTimeout: true,
timeoutMs: 1
})
const { backendHealthy, backendError } = useBackendHealth()
assert.equal(ok, true)
assert.equal(backendHealthy.value, true)
assert.match(backendError.value, /健康检查超时|health/i)
} finally {
global.fetch = originalFetch
}
})