fix: keep paid limits during Stripe retries (#386)

This commit is contained in:
KM Koushik
2026-04-01 13:37:09 +11:00
committed by GitHub
parent bd78ed9ad9
commit b20f3b5d74
4 changed files with 45 additions and 10 deletions
+11
View File
@@ -0,0 +1,11 @@
const ENTITLED_SUBSCRIPTION_STATUSES = new Set([
"active",
"trialing",
"past_due",
]);
export function isEntitledSubscriptionStatus(
status: string | null | undefined,
) {
return Boolean(status && ENTITLED_SUBSCRIPTION_STATUSES.has(status));
}
@@ -0,0 +1,20 @@
import { describe, expect, it } from "vitest";
import { isEntitledSubscriptionStatus } from "~/lib/subscription-status";
describe("isEntitledSubscriptionStatus", () => {
it("treats retrying subscriptions as entitled", () => {
expect(isEntitledSubscriptionStatus("past_due")).toBe(true);
});
it("treats active and trialing subscriptions as entitled", () => {
expect(isEntitledSubscriptionStatus("active")).toBe(true);
expect(isEntitledSubscriptionStatus("trialing")).toBe(true);
});
it("treats exhausted or incomplete subscriptions as not entitled", () => {
expect(isEntitledSubscriptionStatus("unpaid")).toBe(false);
expect(isEntitledSubscriptionStatus("canceled")).toBe(false);
expect(isEntitledSubscriptionStatus("incomplete")).toBe(false);
expect(isEntitledSubscriptionStatus(null)).toBe(false);
});
});