feat: port quality, escalation, KB version, site-map KB, experiments and metrics
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
'use strict';
|
||||
|
||||
const test = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
const { createEscalation } = require('../src/escalation');
|
||||
|
||||
const esc = createEscalation({ client: { sendPrivateNote: async () => {}, assignUser: async () => {} } });
|
||||
|
||||
test('escalation: three consecutive fails -> level 2', () => {
|
||||
assert.equal(esc.shouldEscalate({ messagesProcessed: 3 }, 'policy_faq', 'high', 3, 2).level, 2);
|
||||
});
|
||||
|
||||
test('escalation: low KB with no hits -> level 1', () => {
|
||||
assert.equal(esc.shouldEscalate({ messagesProcessed: 1 }, 'policy_faq', 'low', 0, 0).level, 1);
|
||||
});
|
||||
|
||||
test('escalation: healthy -> level 0', () => {
|
||||
assert.equal(esc.shouldEscalate({ messagesProcessed: 1 }, 'policy_faq', 'high', 0, 3).level, 0);
|
||||
});
|
||||
|
||||
test('escalation: appends localized human option', () => {
|
||||
const out = esc.appendEscalationOption('您好', '您好,订单怎么查');
|
||||
assert.match(out, /转人工/);
|
||||
});
|
||||
Reference in New Issue
Block a user