mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-26 12:26:38 -06:00
45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
// Discord tests cover structures plugin behavior.
|
|
import { ChannelType } from "discord-api-types/v10";
|
|
import { describe, expect, it } from "vitest";
|
|
import { channelFactory, type StructureClient } from "./structures.js";
|
|
|
|
const client: StructureClient = {
|
|
rest: {} as StructureClient["rest"],
|
|
async fetchUser() {
|
|
throw new Error("not used");
|
|
},
|
|
};
|
|
|
|
describe("channelFactory", () => {
|
|
it("maps Discord API thread owner and parent fields to camelCase aliases", () => {
|
|
const channel = channelFactory(client, {
|
|
id: "thread-1",
|
|
type: ChannelType.PublicThread,
|
|
guild_id: "guild-1",
|
|
name: "support",
|
|
owner_id: "owner-1",
|
|
parent_id: "parent-1",
|
|
last_message_id: null,
|
|
rate_limit_per_user: 0,
|
|
thread_metadata: {
|
|
archived: false,
|
|
auto_archive_duration: 60,
|
|
locked: false,
|
|
archive_timestamp: new Date(0).toISOString(),
|
|
},
|
|
message_count: 1,
|
|
member_count: 1,
|
|
total_message_sent: 1,
|
|
});
|
|
|
|
expect(channel.parentId).toBe("parent-1");
|
|
expect(channel.ownerId).toBe("owner-1");
|
|
expect(
|
|
channel.rawData && "parent_id" in channel.rawData ? channel.rawData.parent_id : undefined,
|
|
).toBe("parent-1");
|
|
expect(
|
|
channel.rawData && "owner_id" in channel.rawData ? channel.rawData.owner_id : undefined,
|
|
).toBe("owner-1");
|
|
});
|
|
});
|