




















@@ -2,14 +2,10 @@
22import { describe, expect, it } from "vitest";
33import {
44DEFAULT_GROUP_HISTORY_LIMIT,
5+DEFAULT_GROUP_PROMPT,
56resolveGroupConfig,
6-resolveGroupName,
7-resolveGroupPrompt,
87resolveGroupSettings,
9-resolveHistoryLimit,
10-resolveIgnoreOtherMentions,
118resolveMentionPatterns,
12-resolveRequireMention,
139} from "./group.js";
14101511describe("engine/config/group", () => {
@@ -70,7 +66,7 @@ describe("engine/config/group", () => {
7066qqbot: { appId: "1", groups: { "*": { historyLimit: -3.7 } } },
7167},
7268};
73-expect(resolveHistoryLimit(cfg, "G")).toBe(0);
69+expect(resolveGroupConfig(cfg, "G").historyLimit).toBe(0);
7470});
75717672it("non-finite historyLimit falls back to default", () => {
@@ -79,7 +75,7 @@ describe("engine/config/group", () => {
7975qqbot: { appId: "1", groups: { "*": { historyLimit: "not a number" } } },
8076},
8177};
82-expect(resolveHistoryLimit(cfg, "G")).toBe(DEFAULT_GROUP_HISTORY_LIMIT);
78+expect(resolveGroupConfig(cfg, "G").historyLimit).toBe(DEFAULT_GROUP_HISTORY_LIMIT);
8379});
84808581describe("account-level defaultRequireMention layer", () => {
@@ -103,7 +99,7 @@ describe("engine/config/group", () => {
10399},
104100},
105101};
106-expect(resolveRequireMention(cfg, "G1", "bot2")).toBe(false);
102+expect(resolveGroupConfig(cfg, "G1", "bot2").requireMention).toBe(false);
107103});
108104109105it("wildcard overrides account-level defaultRequireMention", () => {
@@ -153,27 +149,28 @@ describe("engine/config/group", () => {
153149},
154150},
155151};
156-expect(resolveRequireMention(cfg, "G", "bot2")).toBe(false);
157-expect(resolveHistoryLimit(cfg, "G", "bot2")).toBe(7);
152+const resolved = resolveGroupConfig(cfg, "G", "bot2");
153+expect(resolved.requireMention).toBe(false);
154+expect(resolved.historyLimit).toBe(7);
158155});
159156});
160157161-describe("resolveGroupName", () => {
158+describe("resolveGroupSettings name", () => {
162159it("uses the first 8 chars of openid when name is unset", () => {
163-expect(resolveGroupName({}, "ABCDEFGH1234")).toBe("ABCDEFGH");
160+expect(resolveGroupSettings({ cfg: {}, groupOpenid: "ABCDEFGH1234" }).name).toBe("ABCDEFGH");
164161});
165162166163it("prefers the configured name", () => {
167164const cfg = {
168165channels: { qqbot: { appId: "1", groups: { ABCDEFGH1234: { name: "Foo" } } } },
169166};
170-expect(resolveGroupName(cfg, "ABCDEFGH1234")).toBe("Foo");
167+expect(resolveGroupSettings({ cfg, groupOpenid: "ABCDEFGH1234" }).name).toBe("Foo");
171168});
172169});
173170174-describe("resolveGroupPrompt", () => {
171+describe("resolveGroupConfig prompt", () => {
175172it("returns the default prompt when nothing configured", () => {
176-expect(resolveGroupPrompt({}, "G")).toContain("bot");
173+expect(resolveGroupConfig({}, "G").prompt ?? DEFAULT_GROUP_PROMPT).toContain("bot");
177174});
178175179176it("prefers specific over wildcard", () => {
@@ -185,21 +182,21 @@ describe("engine/config/group", () => {
185182},
186183},
187184};
188-expect(resolveGroupPrompt(cfg, "G1")).toBe("SPEC");
189-expect(resolveGroupPrompt(cfg, "G2")).toBe("WILD");
185+expect(resolveGroupConfig(cfg, "G1").prompt).toBe("SPEC");
186+expect(resolveGroupConfig(cfg, "G2").prompt).toBe("WILD");
190187});
191188});
192189193-describe("resolveIgnoreOtherMentions", () => {
190+describe("resolveGroupConfig ignoreOtherMentions", () => {
194191it("defaults to false", () => {
195-expect(resolveIgnoreOtherMentions({}, "G")).toBe(false);
192+expect(resolveGroupConfig({}, "G").ignoreOtherMentions).toBe(false);
196193});
197194198195it("honours wildcard override", () => {
199196const cfg = {
200197channels: { qqbot: { appId: "1", groups: { "*": { ignoreOtherMentions: true } } } },
201198};
202-expect(resolveIgnoreOtherMentions(cfg, "G")).toBe(true);
199+expect(resolveGroupConfig(cfg, "G").ignoreOtherMentions).toBe(true);
203200});
204201});
205202此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。