| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import test from 'node:test'
- import assert from 'node:assert/strict'
- import {
- canBootstrapOrRevise,
- canEditIssues,
- canPublish,
- canReviewIssues,
- canRun,
- dueState,
- evidenceSummary,
- formatPassRate,
- formatScore,
- issueStatusLabel,
- policyStatusLabel,
- priorityLabel,
- recurrenceLabel,
- resultStatusLabel,
- ruleLabel,
- severityLabel,
- timelineActionLabel
- } from '../src/views/dataGovernance/development/deviceQualityModel.js'
- test('separates policy editing, publishing and execution permissions', () => {
- assert.equal(canBootstrapOrRevise(['device-quality:edit']), true)
- assert.equal(canBootstrapOrRevise(['device-quality:execute']), false)
- assert.equal(canPublish(['device-quality:publish']), true)
- assert.equal(canPublish(['device-quality:edit']), false)
- assert.equal(canRun(['device-quality:execute']), true)
- assert.equal(canRun(['governance:read']), false)
- })
- test('separates quality issue editing and independent review permissions', () => {
- assert.equal(canEditIssues(['quality-issues:edit']), true)
- assert.equal(canEditIssues(['governance:read']), false)
- assert.equal(canReviewIssues(['quality-issues:review']), true)
- assert.equal(canReviewIssues(['quality-issues:edit']), false)
- })
- test('presents issue lifecycle, recurrence and overdue state', () => {
- assert.equal(issueStatusLabel('pending_review'), '待复核')
- assert.equal(priorityLabel('critical'), '紧急')
- assert.equal(timelineActionLabel('reopened'), '重新打开')
- assert.equal(recurrenceLabel(1), '首次发生')
- assert.equal(recurrenceLabel(3), '第 3 次发生')
- assert.equal(dueState({
- status: 'in_progress',
- due_at: '2026-07-29T09:00:00Z'
- }, new Date('2026-07-29T10:00:00Z')), 'overdue')
- assert.equal(dueState({
- status: 'closed',
- due_at: '2026-07-29T09:00:00Z'
- }, new Date('2026-07-29T10:00:00Z')), 'normal')
- })
- test('presents governed policy and result labels', () => {
- assert.equal(policyStatusLabel('draft'), '草稿')
- assert.equal(policyStatusLabel('published'), '已发布')
- assert.equal(ruleLabel('maintenance_closed_loop'), '维修闭环完整性')
- assert.equal(severityLabel('critical'), '严重')
- assert.equal(resultStatusLabel('violated'), '存在违规')
- assert.equal(resultStatusLabel('not_applicable'), '不适用')
- })
- test('formats quality score and pass rate consistently', () => {
- assert.equal(formatScore(85), '85.0')
- assert.equal(formatScore(null), '—')
- assert.equal(formatPassRate(0.856), '85.6%')
- assert.equal(formatPassRate(undefined), '—')
- })
- test('summarizes bounded violation evidence without exposing raw attributes', () => {
- assert.deepEqual(evidenceSummary({
- asset_uid: 'asset-1',
- source_mapping_uid: 'mapping-1',
- missing_fields: ['location', 'organization'],
- password: 'must-not-be-shown'
- }), {
- assetUid: 'asset-1',
- sourceMappingUid: 'mapping-1',
- issueCount: 2
- })
- })
|