Files
crm-ai/bridge/test/escalation.test.js

25 lines
921 B
JavaScript

'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, /转人工/);
});