import assert from 'node:assert/strict' import test from 'node:test' import { canEditDeviceSemantics, canReviewDeviceSemantics, codeStatusLabel, codeTypeLabel, semanticCoverage } from '../src/views/dataGovernance/ontology/deviceSemanticsModel.js' test('separates device semantic editing from accountable review', () => { assert.equal( canEditDeviceSemantics(['device-semantics:edit']), true ) assert.equal( canReviewDeviceSemantics(['device-semantics:edit']), false ) assert.equal( canReviewDeviceSemantics(['device-semantics:review']), true ) }) test('presents governed code types and workflow states in Chinese', () => { assert.equal(codeTypeLabel('fault'), '故障') assert.equal(codeTypeLabel('cause'), '原因') assert.equal(codeTypeLabel('action'), '措施') assert.equal(codeStatusLabel('in_review'), '待审批') assert.equal(codeStatusLabel('published'), '已发布') }) test('summarizes semantic coverage without dividing by zero', () => { assert.deepEqual( semanticCoverage({ class_count: 11, relation_count: 10, mapping_count: 6, missing_classes: [], missing_relations: [], missing_mappings: [] }), { covered: 27, missing: 0, total: 27, percent: 100 } ) assert.deepEqual( semanticCoverage({}), { covered: 0, missing: 0, total: 0, percent: 0 } ) })