Files
triggerdotdev--trigger.dev/apps/webapp/test/billingLimitResolve.test.ts
Katia Bulatova b1987dc090 feat(webapp): billing limits — pause, reject, recovery, and settings UI (#3996)
## Summary

Adds Billing Limits to the webapp.

Customers can set a monthly spend cap. When usage crosses the limit,
billable environments enter a grace period. If the limit is not resolved
before grace expires, new triggers are rejected until the organization
increases or removes the limit.
2026-06-26 17:12:53 +02:00

29 lines
929 B
TypeScript

import { describe, expect, it } from "vitest";
import { processBillingLimitResolve } from "~/v3/services/billingLimit/billingLimitResolve.server";
import type { PendingBillingLimitResolve } from "~/v3/services/billingLimit/billingLimitPendingResolve.types";
describe("processBillingLimitResolve", () => {
const pending: PendingBillingLimitResolve = {
organizationId: "org_123",
resumeMode: "queue",
resolvedAt: "2026-06-17T12:00:00.000Z",
};
it("busts caches and enqueues resolve work", async () => {
const busted: string[] = [];
const enqueued: PendingBillingLimitResolve[] = [];
await processBillingLimitResolve(pending, {
bustCaches: (organizationId) => {
busted.push(organizationId);
},
enqueueResolve: async (payload) => {
enqueued.push(payload);
},
});
expect(busted).toEqual(["org_123"]);
expect(enqueued).toEqual([pending]);
});
});