22 lines
1.1 KiB
JavaScript
22 lines
1.1 KiB
JavaScript
import assert from 'node:assert/strict';
|
|
import fs from 'node:fs';
|
|
import test from 'node:test';
|
|
|
|
const service = fs.readFileSync(new URL('../src/services/questions.ts', import.meta.url), 'utf8');
|
|
const page = fs.readFileSync(new URL('../src/pages/user/sop/index.vue', import.meta.url), 'utf8');
|
|
|
|
test('negative feedback bridge sends only opaque source and idempotency references', () => {
|
|
assert.match(service, /questions\/from-answer-feedback/);
|
|
assert.match(service, /data:\s*\{\s*requestId: data\.requestId,\s*idempotencyKey: data\.idempotencyKey\s*\}/);
|
|
assert.doesNotMatch(service, /publishQuestionFromAnswerFeedback[\s\S]*queryText:/);
|
|
assert.doesNotMatch(service, /publishQuestionFromAnswerFeedback[\s\S]*fragmentIds:/);
|
|
});
|
|
|
|
test('human-help conversion is explicit, privacy-aware, and remains pending moderation', () => {
|
|
assert.match(page, /转人工求助/);
|
|
assert.match(page, /审核通过后其他员工可见/);
|
|
assert.match(page, /不含住户姓名、电话、房号等隐私信息/);
|
|
assert.match(page, /已提交审核/);
|
|
assert.doesNotMatch(page, /已公开|已发布到问题榜/);
|
|
});
|