mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 06:50:43 +00:00
test(extensions): dedupe bundled entry smoke tests
This commit is contained in:
@@ -1,16 +1,13 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { describe } from "vitest";
|
||||
import { assertBundledChannelEntries } from "../../test/helpers/bundled-channel-entry.ts";
|
||||
import entry from "./index.js";
|
||||
import setupEntry from "./setup-entry.js";
|
||||
|
||||
describe("discord bundled entries", () => {
|
||||
it("declares the channel plugin without importing the broad api barrel", () => {
|
||||
expect(entry.kind).toBe("bundled-channel-entry");
|
||||
expect(entry.id).toBe("discord");
|
||||
expect(entry.name).toBe("Discord");
|
||||
});
|
||||
|
||||
it("declares the setup plugin without importing the broad api barrel", () => {
|
||||
expect(setupEntry.kind).toBe("bundled-channel-setup-entry");
|
||||
expect(typeof setupEntry.loadSetupPlugin).toBe("function");
|
||||
assertBundledChannelEntries({
|
||||
entry,
|
||||
expectedId: "discord",
|
||||
expectedName: "Discord",
|
||||
setupEntry,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { describe } from "vitest";
|
||||
import { assertBundledChannelEntries } from "../../test/helpers/bundled-channel-entry.ts";
|
||||
import entry from "./index.js";
|
||||
import setupEntry from "./setup-entry.js";
|
||||
|
||||
describe("irc bundled entries", () => {
|
||||
it("declares the channel plugin without importing the broad api barrel", () => {
|
||||
expect(entry.kind).toBe("bundled-channel-entry");
|
||||
expect(entry.id).toBe("irc");
|
||||
expect(entry.name).toBe("IRC");
|
||||
});
|
||||
|
||||
it("declares the setup plugin without importing the broad api barrel", () => {
|
||||
expect(setupEntry.kind).toBe("bundled-channel-setup-entry");
|
||||
expect(typeof setupEntry.loadSetupPlugin).toBe("function");
|
||||
assertBundledChannelEntries({
|
||||
entry,
|
||||
expectedId: "irc",
|
||||
expectedName: "IRC",
|
||||
setupEntry,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { describe } from "vitest";
|
||||
import { assertBundledChannelEntries } from "../../test/helpers/bundled-channel-entry.ts";
|
||||
import entry from "./index.js";
|
||||
import setupEntry from "./setup-entry.js";
|
||||
|
||||
describe("slack bundled entries", () => {
|
||||
it("declares the channel plugin without importing the broad api barrel", () => {
|
||||
expect(entry.kind).toBe("bundled-channel-entry");
|
||||
expect(entry.id).toBe("slack");
|
||||
expect(entry.name).toBe("Slack");
|
||||
});
|
||||
|
||||
it("declares the setup plugin without importing the broad api barrel", () => {
|
||||
expect(setupEntry.kind).toBe("bundled-channel-setup-entry");
|
||||
expect(typeof setupEntry.loadSetupPlugin).toBe("function");
|
||||
assertBundledChannelEntries({
|
||||
entry,
|
||||
expectedId: "slack",
|
||||
expectedName: "Slack",
|
||||
setupEntry,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { beforeEach, describe, vi } from "vitest";
|
||||
import { assertBundledChannelEntries } from "../../test/helpers/bundled-channel-entry.ts";
|
||||
import entry from "./index.js";
|
||||
import setupEntry from "./setup-entry.js";
|
||||
|
||||
@@ -7,13 +8,11 @@ describe("telegram bundled entries", () => {
|
||||
vi.useRealTimers();
|
||||
});
|
||||
|
||||
it("declares the channel entry without importing the broad api barrel", () => {
|
||||
expect(entry.id).toBe("telegram");
|
||||
expect(entry.name).toBe("Telegram");
|
||||
});
|
||||
|
||||
it("declares the setup plugin without importing the broad api barrel", () => {
|
||||
expect(setupEntry.kind).toBe("bundled-channel-setup-entry");
|
||||
expect(typeof setupEntry.loadSetupPlugin).toBe("function");
|
||||
assertBundledChannelEntries({
|
||||
entry,
|
||||
expectedId: "telegram",
|
||||
expectedName: "Telegram",
|
||||
setupEntry,
|
||||
channelMessage: "declares the channel entry without importing the broad api barrel",
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { describe } from "vitest";
|
||||
import { assertBundledChannelEntries } from "../../test/helpers/bundled-channel-entry.ts";
|
||||
import entry from "./index.js";
|
||||
import setupEntry from "./setup-entry.js";
|
||||
|
||||
describe("whatsapp bundled entries", () => {
|
||||
it("declares the channel plugin without importing the broad api barrel", () => {
|
||||
expect(entry.kind).toBe("bundled-channel-entry");
|
||||
expect(entry.id).toBe("whatsapp");
|
||||
expect(entry.name).toBe("WhatsApp");
|
||||
});
|
||||
|
||||
it("declares the setup plugin without importing the broad api barrel", () => {
|
||||
expect(setupEntry.kind).toBe("bundled-channel-setup-entry");
|
||||
expect(typeof setupEntry.loadSetupPlugin).toBe("function");
|
||||
assertBundledChannelEntries({
|
||||
entry,
|
||||
expectedId: "whatsapp",
|
||||
expectedName: "WhatsApp",
|
||||
setupEntry,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { describe } from "vitest";
|
||||
import { assertBundledChannelEntries } from "../../test/helpers/bundled-channel-entry.ts";
|
||||
import entry from "./index.js";
|
||||
import setupEntry from "./setup-entry.js";
|
||||
|
||||
describe("zalo bundled entries", () => {
|
||||
it("declares the channel plugin without a runtime-barrel cycle", () => {
|
||||
expect(entry.kind).toBe("bundled-channel-entry");
|
||||
expect(entry.id).toBe("zalo");
|
||||
expect(entry.name).toBe("Zalo");
|
||||
});
|
||||
|
||||
it("declares the setup plugin without a runtime-barrel cycle", () => {
|
||||
expect(setupEntry.kind).toBe("bundled-channel-setup-entry");
|
||||
expect(typeof setupEntry.loadSetupPlugin).toBe("function");
|
||||
assertBundledChannelEntries({
|
||||
entry,
|
||||
expectedId: "zalo",
|
||||
expectedName: "Zalo",
|
||||
setupEntry,
|
||||
channelMessage: "declares the channel plugin without a runtime-barrel cycle",
|
||||
setupMessage: "declares the setup plugin without a runtime-barrel cycle",
|
||||
});
|
||||
});
|
||||
|
||||
38
test/helpers/bundled-channel-entry.ts
Normal file
38
test/helpers/bundled-channel-entry.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import { expect, it } from "vitest";
|
||||
|
||||
type BundledChannelEntry = {
|
||||
id: string;
|
||||
kind?: string;
|
||||
name: string;
|
||||
};
|
||||
|
||||
type BundledChannelSetupEntry = {
|
||||
kind?: string;
|
||||
loadSetupPlugin?: unknown;
|
||||
};
|
||||
|
||||
export function assertBundledChannelEntries(params: {
|
||||
entry: BundledChannelEntry;
|
||||
expectedId: string;
|
||||
expectedName: string;
|
||||
setupEntry: BundledChannelSetupEntry;
|
||||
channelMessage?: string;
|
||||
setupMessage?: string;
|
||||
}) {
|
||||
it(
|
||||
params.channelMessage ?? "declares the channel plugin without importing the broad api barrel",
|
||||
() => {
|
||||
expect(params.entry.kind).toBe("bundled-channel-entry");
|
||||
expect(params.entry.id).toBe(params.expectedId);
|
||||
expect(params.entry.name).toBe(params.expectedName);
|
||||
},
|
||||
);
|
||||
|
||||
it(
|
||||
params.setupMessage ?? "declares the setup plugin without importing the broad api barrel",
|
||||
() => {
|
||||
expect(params.setupEntry.kind).toBe("bundled-channel-setup-entry");
|
||||
expect(typeof params.setupEntry.loadSetupPlugin).toBe("function");
|
||||
},
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user