Tests de plugins
Tester un plugin PluginFactory couvre trois niveaux : unitaire (logique métier), intégration (API), et end-to-end (flux complet).
Tests unitaires
Testez la logique pure sans dépendances externes :
import { describe, test, expect } from "bun:test";
import { validateInput } from "./my-plugin";
describe("validateInput", () => {
test("accepts valid email", () => {
expect(validateInput({ email: "test@example.com" })).toBe(true);
});
test("rejects empty email", () => {
expect(validateInput({ email: "" })).toBe(false);
});
});
Tests d'intégration
Utilisez un contexte de test fourni par le SDK :
import { createTestContext } from "@plugin-factory/sdk/testing";
const ctx = createTestContext({ userId: "test-user" });
const result = await myPlugin.tools.process(ctx, { data: "test" });
expect(result.status).toBe("ok");
Tests end-to-end
Pour les tests e2e, configurez un environnement isolé avec une base de données de test :
// bun test --env-file=.env.test
DATABASE_URL=postgresql://localhost/plugin_factory_test
Exécutez : bun test packages/domain/ && bun test packages/mcp-maintenance/