import assert from "node:assert/strict";
const {
isLikelyMvuWorldInfoContent,
isMvuTaggedWorldInfoNameOrComment,
sanitizeMvuContent,
} = await import("../mvu-compat.js");
assert.equal(
isMvuTaggedWorldInfoNameOrComment("[mvu_update] 状态", ""),
true,
);
assert.equal(
isMvuTaggedWorldInfoNameOrComment("普通条目", "[initvar]"),
true,
);
assert.equal(
isLikelyMvuWorldInfoContent(
"变量更新规则:\ntype: state\n当前时间: 12:00",
),
true,
);
assert.equal(
isLikelyMvuWorldInfoContent(
'{"stat_data":{"地点":"学校"},"display_data":{"地点":"教室"}}',
),
true,
);
assert.equal(isLikelyMvuWorldInfoContent("正常世界设定"), false);
const aggressive = sanitizeMvuContent(
"正文\nhp=1\nsecret",
{
mode: "aggressive",
},
);
assert.equal(aggressive.text, "");
assert.equal(aggressive.dropped, true);
assert.deepEqual(
aggressive.reasons.sort(),
["artifact_stripped", "likely_mvu_content"].sort(),
);
const finalSafe = sanitizeMvuContent(
"说明文字\nhp=1\n尾巴",
{
mode: "final-safe",
},
);
assert.equal(finalSafe.dropped, false);
assert.equal(finalSafe.text, "说明文字\n尾巴");
assert.deepEqual(finalSafe.reasons, ["artifact_stripped"]);
const macroSafe = sanitizeMvuContent(
"地点={{get_message_variable::stat_data.地点}}\n<%- SafeGetValue(msg_data.地点) %>",
{
mode: "final-safe",
},
);
assert.equal(macroSafe.dropped, false);
assert.equal(macroSafe.text, "地点=");
assert.deepEqual(macroSafe.reasons, ["artifact_stripped"]);
const blocked = sanitizeMvuContent("前缀\n被拦截条目\n后缀", {
mode: "final-safe",
blockedContents: ["被拦截条目"],
});
assert.equal(blocked.text, "前缀\n\n后缀");
assert.equal(blocked.blockedHitCount, 1);
assert.deepEqual(blocked.reasons, ["blocked_content_removed"]);
console.log("mvu-compat tests passed");