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/

Previous

← Page précédente

Next

Page suivante →