refactor: split gateway server helpers and tests
This commit is contained in:
34
src/gateway/session-utils.test.ts
Normal file
34
src/gateway/session-utils.test.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import { describe, expect, test } from "vitest";
|
||||
import type { SessionEntry } from "../config/sessions.js";
|
||||
import {
|
||||
capArrayByJsonBytes,
|
||||
classifySessionKey,
|
||||
parseGroupKey,
|
||||
} from "./session-utils.js";
|
||||
|
||||
describe("gateway session utils", () => {
|
||||
test("capArrayByJsonBytes trims from the front", () => {
|
||||
const res = capArrayByJsonBytes(["a", "b", "c"], 10);
|
||||
expect(res.items).toEqual(["b", "c"]);
|
||||
});
|
||||
|
||||
test("parseGroupKey handles group prefixes", () => {
|
||||
expect(parseGroupKey("group:abc")).toEqual({ id: "abc" });
|
||||
expect(parseGroupKey("discord:group:dev")).toEqual({
|
||||
surface: "discord",
|
||||
kind: "group",
|
||||
id: "dev",
|
||||
});
|
||||
expect(parseGroupKey("foo:bar")).toBeNull();
|
||||
});
|
||||
|
||||
test("classifySessionKey respects chat type + prefixes", () => {
|
||||
expect(classifySessionKey("global")).toBe("global");
|
||||
expect(classifySessionKey("unknown")).toBe("unknown");
|
||||
expect(classifySessionKey("group:abc")).toBe("group");
|
||||
expect(classifySessionKey("discord:group:dev")).toBe("group");
|
||||
expect(classifySessionKey("main")).toBe("direct");
|
||||
const entry = { chatType: "group" } as SessionEntry;
|
||||
expect(classifySessionKey("main", entry)).toBe("group");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user