fix: keep paid limits during Stripe retries (#386)
This commit is contained in:
@@ -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);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user