fix(audit): expose rule management permission state

This commit is contained in:
caoxiaozhu
2026-07-20 10:30:35 +08:00
parent 140efd1a2a
commit 208e1bed59
4 changed files with 62 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
import assert from 'node:assert/strict'
import { readFileSync } from 'node:fs'
import test from 'node:test'
import { fileURLToPath } from 'node:url'
import { ref } from 'vue'
import { useAuditViewPermissions } from '../src/views/scripts/useAuditViewPermissions.js'
function readSource(path) {
return readFileSync(fileURLToPath(new URL(path, import.meta.url)), 'utf8')
}
test('规则管理向创建流程传递当前用户的规则管理权限', () => {
const permissions = useAuditViewPermissions({
currentUser: ref({ username: 'admin', isAdmin: true, roleCodes: ['manager', 'finance'] }),
selectedSkill: ref(null),
actionState: ref('')
})
const auditViewScript = readSource('../src/views/scripts/AuditView.js')
assert.equal(permissions.isRuleManager.value, true)
assert.match(
auditViewScript,
/const\s*\{[\s\S]*?isRuleManager[\s\S]*?\}\s*=\s*useAuditViewPermissions\(/
)
assert.match(
auditViewScript,
/useAuditRiskRuleCreateFlow\(\{[\s\S]*?isRuleManager[\s\S]*?\}\)/
)
})
test('风险规则详情向模板暴露草稿、修订和发布权限', () => {
const auditViewScript = readSource('../src/views/scripts/AuditView.js')
const setupReturnBlock = auditViewScript.slice(auditViewScript.lastIndexOf('\n return {'))
assert.match(setupReturnBlock, /\briskRuleHasPublishableRevision\s*,/)
assert.match(setupReturnBlock, /\bcanEditRiskRuleDraft\s*,/)
assert.match(setupReturnBlock, /\bcanCreateRiskRuleRevision\s*,/)
})