trigger.test.ts 957 B

12345678910111213141516171819202122232425262728293031
  1. import { readFileSync } from "node:fs";
  2. import { resolve } from "node:path";
  3. import { describe, expect, it } from "vitest";
  4. const sql = readFileSync(resolve(process.cwd(), "src/lib/ledger-backfill/trigger.sql"), "utf-8");
  5. describe("fn_upsert_usage_ledger trigger SQL", () => {
  6. it("contains warmup exclusion check", () => {
  7. expect(sql).toContain("blocked_by = 'warmup'");
  8. });
  9. it("contains ON CONFLICT UPSERT", () => {
  10. expect(sql).toContain("ON CONFLICT (request_id) DO UPDATE");
  11. });
  12. it("contains EXCEPTION error handling", () => {
  13. expect(sql).toContain("EXCEPTION WHEN OTHERS");
  14. });
  15. it("pre-validates provider_chain before extraction", () => {
  16. expect(sql).toContain("jsonb_typeof");
  17. });
  18. it("computes is_success from error_message", () => {
  19. expect(sql).toContain("error_message IS NULL");
  20. });
  21. it("creates trigger binding", () => {
  22. expect(sql).toContain("CREATE TRIGGER trg_upsert_usage_ledger");
  23. });
  24. });