guanghulab/server/portal/tests/strip-system.test.js
Guanghu Domestic Migration d1e47f4565
Some checks are pending
自动更新代码和重启 / update-and-restart (push) Waiting to run
CI检查 + 自动部署 / check (push) Waiting to run
CI检查 + 自动部署 / deploy (push) Blocked by required conditions
重启聊天服务 / restart (push) Waiting to run
chore: import sanitized domestic snapshot for REPO-002
Source snapshot: ca48d3ddf926d79aa138306164169baf764bb829
2026-07-17 15:54:41 +08:00

57 lines
1.6 KiB
JavaScript

/*
* cc-002 回归: _strip_system_messages 必须在任何路径下都剥掉 system.
*/
"use strict";
const test = require("node:test");
const assert = require("node:assert/strict");
const { _strip_system_messages } = require("../lib/inference-client");
test("strip 单个 system 消息", () => {
const out = _strip_system_messages([
{ role: "system", content: "你是 X" },
{ role: "user", content: "你好" }
]);
assert.equal(out.length, 1);
assert.equal(out[0].role, "user");
});
test("剥离多个 system 消息 (多语言模板诱惑)", () => {
const out = _strip_system_messages([
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Q1" },
{ role: "system", content: "Be concise." },
{ role: "assistant", content: "A1" },
{ role: "user", content: "Q2" }
]);
assert.equal(out.length, 3);
assert.deepEqual(out.map((m) => m.role), ["user", "assistant", "user"]);
});
test("非数组输入返回空数组", () => {
assert.deepEqual(_strip_system_messages(null), []);
assert.deepEqual(_strip_system_messages(undefined), []);
assert.deepEqual(_strip_system_messages("system"), []);
});
test("跳过 role 缺失的脏数据", () => {
const out = _strip_system_messages([
{ content: "no role" },
null,
{ role: "user", content: "hi" }
]);
assert.equal(out.length, 1);
assert.equal(out[0].role, "user");
});
test("user/assistant 完整保留", () => {
const arr = [
{ role: "user", content: "1" },
{ role: "assistant", content: "2" },
{ role: "user", content: "3" }
];
const out = _strip_system_messages(arr);
assert.deepEqual(out, arr);
});