fix(audit): expose rule management permission state
This commit is contained in:
@@ -90,6 +90,7 @@ export default {
|
||||
const {
|
||||
detailBusy,
|
||||
isAdmin,
|
||||
isRuleManager,
|
||||
selectedSkillIsRule,
|
||||
selectedSkillUsesSpreadsheet,
|
||||
selectedSkillUsesJsonRisk,
|
||||
@@ -650,8 +651,11 @@ export default {
|
||||
canOpenRiskRuleReviewSubmit,
|
||||
canSubmitRiskRuleReview,
|
||||
canReturnRiskRule,
|
||||
riskRuleHasPublishableRevision,
|
||||
canPublishRiskRule,
|
||||
canToggleRiskRuleEnabled,
|
||||
canEditRiskRuleDraft,
|
||||
canCreateRiskRuleRevision,
|
||||
riskRuleTestPassed,
|
||||
riskRuleInReview,
|
||||
canSubmitReview,
|
||||
|
||||
@@ -127,6 +127,7 @@ export function useAuditViewPermissions({
|
||||
return {
|
||||
detailBusy,
|
||||
isAdmin,
|
||||
isRuleManager,
|
||||
selectedSkillIsRule,
|
||||
selectedSkillUsesSpreadsheet,
|
||||
selectedSkillUsesJsonRisk,
|
||||
|
||||
39
web/tests/audit-view-permissions.test.mjs
Normal file
39
web/tests/audit-view-permissions.test.mjs
Normal 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*,/)
|
||||
})
|
||||
Reference in New Issue
Block a user