| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- import assert from 'node:assert/strict'
- import test from 'node:test'
- import {
- answerPresentation,
- canManageKnowledge,
- deviceObjectLabel,
- parseBusinessDomainScope,
- resultEvidence,
- scopePresentation
- } from '../src/views/knowledgeBaseProduct/deviceKnowledgeModel.js'
- test('presents device knowledge objects and explicit answer states', () => {
- assert.equal(deviceObjectLabel('DeviceAsset'), '设备资产')
- assert.equal(deviceObjectLabel('DataFlow'), 'DataFlow')
- assert.deepEqual(answerPresentation('model_unavailable'), {
- color: 'warning',
- title: '回答模型暂不可用',
- detail: '未生成推测性答案;以下仅展示你有权访问的检索证据。'
- })
- assert.deepEqual(answerPresentation('no_answer'), {
- color: 'info',
- title: '当前证据不足',
- detail: '知识库未生成推测性答案;可检查下方授权证据并调整问题。'
- })
- })
- test('uses selected citations only for grounded answers and evidence otherwise', () => {
- const citations = [{ chunk_id: 'citation-1', content: '责任人:张工' }]
- const evidence = [{ chunk_id: 'evidence-1', content: '设备名称:循环泵' }]
- assert.deepEqual(
- resultEvidence({
- answer_status: 'grounded',
- citations,
- evidence
- }),
- citations
- )
- assert.deepEqual(
- resultEvidence({
- answer_status: 'model_unavailable',
- citations: [],
- evidence
- }),
- evidence
- )
- })
- test('normalizes source scope and makes empty scope admin-only', () => {
- const domainA = '11111111-1111-4111-8111-111111111111'
- const domainB = '22222222-2222-4222-8222-222222222222'
- assert.deepEqual(
- parseBusinessDomainScope(`${domainB}\n${domainA}\n${domainA}`),
- [domainA, domainB]
- )
- assert.throws(
- () => parseBusinessDomainScope('not-a-uuid'),
- /UUID/
- )
- assert.deepEqual(scopePresentation([]), {
- color: 'warning',
- label: '仅管理员可见'
- })
- assert.deepEqual(scopePresentation([domainA]), {
- color: 'success',
- label: '1 个业务域'
- })
- })
- test('shows scope and audit controls only with knowledge manage permission', () => {
- assert.equal(canManageKnowledge(['governance:read']), false)
- assert.equal(
- canManageKnowledge(['governance:read', 'knowledge:manage']),
- true
- )
- })
|