UNPKG

alepha

Version:

Easy-to-use modern TypeScript framework for building many kind of applications.

75 lines (57 loc) 2.28 kB
import { Alepha } from "alepha"; import { describe, it } from "vitest"; import { CaptchaProvider, MemoryCaptchaProvider } from "../index.ts"; describe("MemoryCaptchaProvider", () => { it("should be registered as default CaptchaProvider", async ({ expect }) => { const alepha = Alepha.create(); const provider = alepha.inject(CaptchaProvider); await alepha.start(); expect(provider).toBeInstanceOf(MemoryCaptchaProvider); }); it("should accept all tokens by default", async ({ expect }) => { const alepha = Alepha.create(); const provider = alepha.inject(MemoryCaptchaProvider); await alepha.start(); const result = await provider.verify("test-token", "127.0.0.1"); expect(result).toBe(true); expect(provider.records).toHaveLength(1); expect(provider.records[0].token).toBe("test-token"); expect(provider.records[0].ip).toBe("127.0.0.1"); }); it("should reject tokens when configured", async ({ expect }) => { const alepha = Alepha.create(); const provider = alepha.inject(MemoryCaptchaProvider); await alepha.start(); provider.reject(); const result = await provider.verify("test-token"); expect(result).toBe(false); expect(provider.records).toHaveLength(1); }); it("should restore acceptance after reject", async ({ expect }) => { const alepha = Alepha.create(); const provider = alepha.inject(MemoryCaptchaProvider); await alepha.start(); provider.reject(); provider.accept(); const result = await provider.verify("test-token"); expect(result).toBe(true); }); it("should track verification with wasVerified helper", async ({ expect, }) => { const alepha = Alepha.create(); const provider = alepha.inject(MemoryCaptchaProvider); await alepha.start(); await provider.verify("abc-123"); expect(provider.wasVerified("abc-123")).toBe(true); expect(provider.wasVerified("unknown")).toBe(false); }); it("should return last record", async ({ expect }) => { const alepha = Alepha.create(); const provider = alepha.inject(MemoryCaptchaProvider); await alepha.start(); await provider.verify("first"); await provider.verify("second"); expect(provider.last?.token).toBe("second"); }); });