mirror of
https://github.com/openclaw/openclaw.git
synced 2026-02-19 18:39:20 -05:00
Address PR feedback
This commit is contained in:
committed by
CLAWDINATOR Bot
parent
a24f31f5a9
commit
88cfc1cdd6
@@ -196,6 +196,12 @@ describe("handleDiscordPresenceAction", () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("requires activityType when activityName is provided", async () => {
|
||||
await expect(
|
||||
handleDiscordPresenceAction("setPresence", { activityName: "My Game" }, presenceEnabled),
|
||||
).rejects.toThrow(/activityType is required/);
|
||||
});
|
||||
|
||||
it("rejects unknown presence actions", async () => {
|
||||
await expect(handleDiscordPresenceAction("unknownAction", {}, presenceEnabled)).rejects.toThrow(
|
||||
/Unknown presence action/,
|
||||
|
||||
@@ -55,7 +55,13 @@ export async function handleDiscordPresenceAction(
|
||||
const activities: Activity[] = [];
|
||||
|
||||
if (activityTypeRaw || activityName) {
|
||||
const typeNum = activityTypeRaw ? ACTIVITY_TYPE_MAP[activityTypeRaw.toLowerCase()] : 0;
|
||||
if (!activityTypeRaw) {
|
||||
throw new Error(
|
||||
"activityType is required when activityName is provided. " +
|
||||
`Valid types: ${Object.keys(ACTIVITY_TYPE_MAP).join(", ")}`,
|
||||
);
|
||||
}
|
||||
const typeNum = ACTIVITY_TYPE_MAP[activityTypeRaw.toLowerCase()];
|
||||
if (typeNum === undefined) {
|
||||
throw new Error(
|
||||
`Invalid activityType "${activityTypeRaw}". Must be one of: ${Object.keys(ACTIVITY_TYPE_MAP).join(", ")}`,
|
||||
|
||||
@@ -23,11 +23,12 @@ describe("gateway-registry", () => {
|
||||
expect(getGateway("account-b")).toBeUndefined();
|
||||
});
|
||||
|
||||
it("uses 'default' key when accountId is undefined", () => {
|
||||
it("uses collision-safe key when accountId is undefined", () => {
|
||||
const gateway = fakeGateway();
|
||||
registerGateway(undefined, gateway);
|
||||
expect(getGateway(undefined)).toBe(gateway);
|
||||
expect(getGateway("default")).toBe(gateway);
|
||||
// "default" as a literal account ID must not collide with the sentinel key
|
||||
expect(getGateway("default")).toBeUndefined();
|
||||
});
|
||||
|
||||
it("unregisters a gateway", () => {
|
||||
|
||||
@@ -8,8 +8,12 @@ import type { GatewayPlugin } from "@buape/carbon/gateway";
|
||||
*/
|
||||
const gatewayRegistry = new Map<string, GatewayPlugin>();
|
||||
|
||||
// Sentinel key for the default (unnamed) account. Uses a prefix that cannot
|
||||
// collide with user-configured account IDs.
|
||||
const DEFAULT_ACCOUNT_KEY = "\0__default__";
|
||||
|
||||
function resolveAccountKey(accountId?: string): string {
|
||||
return accountId ?? "default";
|
||||
return accountId ?? DEFAULT_ACCOUNT_KEY;
|
||||
}
|
||||
|
||||
/** Register a GatewayPlugin instance for an account. */
|
||||
|
||||
Reference in New Issue
Block a user