chore: added test groups

This commit is contained in:
John Yeo
2026-02-22 23:48:40 +00:00
parent b6a37c6762
commit f08fe4e9f7
17 changed files with 244 additions and 49 deletions

View File

@@ -1,39 +1,22 @@
import { coreAttach } from "./core/coreAttach";
import { coreBalances } from "./core/coreBalances";
import { coreLegacy } from "./core/coreLegacy";
import { coreMigrations } from "./core/coreMigrations";
import { coreStripe } from "./core/coreStripe";
import { coreUpdateSubscription } from "./core/coreUpdateSubscription";
import type { TestGroup } from "./types";
export const core: TestGroup = {
name: "core",
description:
"Critical flows that must pass: basic attach, balance operations, CRUD, unit tests",
"Critical flows that must pass: balances, attach, update-subscription, legacy, migrations, stripe webhooks",
tier: "core",
paths: [
// ── Balance: Check ──
"integration/balances/check/check-basic.test.ts",
"balances/check/credit-systems",
"balances/check/send-event",
// ── Balance: Track ──
"balances/track/basic",
"balances/track/concurrency",
"balances/track/credit-systems",
"balances/track/entity-balances",
"balances/track/entity-products",
"balances/track/negative",
"balances/track/paid-allocated",
"integration/balances/track/track-misc.test.ts",
// ── Balance: Update ──
"integration/balances/update/balance/update-balance-basic.test.ts",
// ── Legacy Attach ──
"integration/billing/legacy/attach/attach-new-billing-subscription.test.ts",
"integration/billing/legacy/attach/attach-misc.test.ts",
"integration/billing/legacy/attach/downgrade/legacy-downgrade-merged-schedule.test.ts",
"integration/billing/legacy/attach/group/legacy-group-merged.test.ts",
"integration/billing/legacy/attach/invoice/legacy-attach-invoice-mode.test.ts",
"integration/billing/legacy/attach/new/legacy-new-merged.test.ts",
"integration/billing/legacy/attach/separate/legacy-separate.test.ts",
"integration/billing/legacy/attach/trial/legacy-trial.test.ts",
"integration/billing/legacy/attach/update-quantity/legacy-update-quantity.test.ts",
"integration/billing/legacy/attach/upgrade/legacy-upgrade.test.ts",
...coreBalances.paths,
...coreLegacy.paths,
...coreMigrations.paths,
...coreStripe.paths,
...coreAttach.paths,
...coreUpdateSubscription.paths,
],
};

View File

@@ -0,0 +1,31 @@
import type { TestGroup } from "../types";
export const coreAttach: TestGroup = {
name: "core-attach",
description: "Core v2 attach tests",
tier: "core",
paths: [
"billing/attach/new-plan/attach-paid.test.ts",
"billing/attach/new-plan/attach-free.test.ts",
"billing/attach/new-plan/attach-addon.test.ts",
"billing/attach/new-plan/attach-entities.test.ts",
"billing/attach/immediate-switch/immediate-switch-basic.test.ts",
"billing/attach/immediate-switch/immediate-switch-prepaid.test.ts",
"billing/attach/immediate-switch/immediate-switch-consumable.test.ts",
"billing/attach/immediate-switch/immediate-switch-entities.test.ts",
"billing/attach/scheduled-switch/scheduled-switch-basic.test.ts",
"billing/attach/scheduled-switch/scheduled-switch-consumable.test.ts",
"billing/attach/scheduled-switch/scheduled-switch-entities-basic.test.ts",
"billing/attach/checkout/stripe-checkout/stripe-checkout-basic.test.ts",
"billing/attach/free-trial/trial-basic.test.ts",
"billing/attach/free-trial/trial-conversion.test.ts",
"billing/attach/free-trial/trial-payment-method.test.ts",
"billing/attach/invoice/attach-invoice-finalized-immediate.test.ts",
"billing/attach/invoice/attach-invoice-draft-deferred.test.ts",
"billing/attach/invoice/payment-failure/payment-failed.test.ts",
"billing/attach/errors/attach-basic-errors.test.ts",
"billing/attach/discounts/attach-discounts-basic.test.ts",
"billing/attach/new-billing-subscription/new-billing-subscription.test.ts",
"billing/attach/params/custom-plan/custom-plan-features.test.ts",
],
};

View File

@@ -0,0 +1,29 @@
import type { TestGroup } from "../types";
export const coreBalances: TestGroup = {
name: "core-balances",
description: "Core balance check, track, and update tests",
tier: "core",
paths: [
// ── Check ──
"integration/balances/check/check-basic.test.ts",
"balances/check/credit-systems",
"balances/check/send-event",
"balances/check/misc",
// ── Track ──
"balances/track/basic",
"balances/track/allocated",
"balances/track/breakdown",
"balances/track/concurrency",
"balances/track/credit-systems",
"balances/track/entity-balances",
"balances/track/entity-products",
"balances/track/negative",
"balances/track/paid-allocated",
"integration/balances/track/track-misc.test.ts",
// ── Update ──
"integration/balances/update/balance/update-balance-basic.test.ts",
],
};

View File

@@ -0,0 +1,26 @@
import type { TestGroup } from "../types";
export const coreLegacy: TestGroup = {
name: "core-legacy",
description: "Core legacy (v1) attach tests",
tier: "core",
paths: [
"legacy/attach/attach-misc.test.ts",
"legacy/attach/attach-new-billing-subscription.test.ts",
"legacy/attach/attach-response.test.ts",
"legacy/attach/addon/legacy-addon.test.ts",
"legacy/attach/checkout/legacy-checkout-basic.test.ts",
"legacy/attach/downgrade/legacy-downgrade.test.ts",
"legacy/attach/entities/legacy-entities-basic.test.ts",
"legacy/attach/invoice/legacy-attach-invoice-mode.test.ts",
"legacy/attach/invoice/payment-failure/legacy-attach-payment-failed.test.ts",
"legacy/attach/new/legacy-new-merged.test.ts",
"legacy/attach/new/legacy-new-oneoff.test.ts",
"legacy/attach/trial/legacy-trial.test.ts",
"legacy/attach/update-quantity/legacy-update-quantity.test.ts",
"legacy/attach/upgrade/legacy-upgrade.test.ts",
"legacy/attach/upgrade/legacy-upgrade-usage.test.ts",
"legacy/attach/upgrade/legacy-upgrade-prepaid.test.ts",
"legacy/attach/upgrade/legacy-upgrade-merged.test.ts",
],
};

View File

@@ -0,0 +1,13 @@
import type { TestGroup } from "../types";
export const coreMigrations: TestGroup = {
name: "core-migrations",
description: "Core migration tests",
tier: "core",
paths: [
"migrations/migrate-free.test.ts",
"migrations/migrate-paid.test.ts",
"migrations/migrate-trials.test.ts",
"migrations/migrate-states.test.ts",
],
};

View File

@@ -0,0 +1,14 @@
import type { TestGroup } from "../types";
export const coreStripe: TestGroup = {
name: "core-stripe",
description: "Core Stripe webhook tests",
tier: "core",
paths: [
"stripe-webhooks/subscription-updated",
"stripe-webhooks/subscription-deleted/subscription-deleted.test.ts",
"stripe-webhooks/subscription-deleted/subscription-deleted-invoice.test.ts",
"stripe-webhooks/invoice-created/invoice-created-consumable.test.ts",
"stripe-webhooks/invoice-created/invoice-created-entity-consumable.test.ts",
],
};

View File

@@ -0,0 +1,31 @@
import type { TestGroup } from "../types";
export const coreUpdateSubscription: TestGroup = {
name: "core-update-subscription",
description: "Core update-subscription tests",
tier: "core",
paths: [
"billing/update-subscription/cancel/end-of-cycle/cancel-end-of-cycle.test.ts",
"billing/update-subscription/cancel/end-of-cycle/cancel-end-of-cycle-addon.test.ts",
"billing/update-subscription/cancel/immediately/cancel-immediately.test.ts",
"billing/update-subscription/cancel/immediately/cancel-immediately-billing.test.ts",
"billing/update-subscription/cancel/uncancel/uncancel-basic.test.ts",
"billing/update-subscription/cancel/uncancel/uncancel-combined.test.ts",
"billing/update-subscription/update-quantity/increase-quantity.test.ts",
"billing/update-subscription/update-quantity/decrease-quantity.test.ts",
"billing/update-subscription/custom-plan/update-paid-basic.test.ts",
"billing/update-subscription/custom-plan/update-free-to-paid.test.ts",
"billing/update-subscription/custom-plan/update-paid-prepaid.test.ts",
"billing/update-subscription/custom-plan/update-paid-features.test.ts",
"billing/update-subscription/free-trial/update-remove-trial.test.ts",
"billing/update-subscription/free-trial/update-paid-trials.test.ts",
"billing/update-subscription/free-trial/update-quantity-with-trial.test.ts",
"billing/update-subscription/version-update/version-pricing.test.ts",
"billing/update-subscription/version-update/version-entitlements.test.ts",
"billing/update-subscription/invoice/update-with-invoice-basic.test.ts",
"billing/update-subscription/errors/update-errors-basic.test.ts",
"billing/update-subscription/discounts/percent-off-discount.test.ts",
"billing/update-subscription/billing-behavior/next-cycle-only.test.ts",
"billing/update-subscription/billing-behavior/next-cycle-only-cancel.test.ts",
],
};

View File

@@ -1,8 +0,0 @@
import type { TestGroup } from "../types";
export const balances: TestGroup = {
name: "balances",
description: "All balance check, track, set-usage, and cron tests",
tier: "domain",
paths: [],
};

View File

@@ -0,0 +1,8 @@
import type { TestGroup } from "../../types";
export const balances: TestGroup = {
name: "balances",
description: "All balance check, track, set-usage, update, and cron tests",
tier: "domain",
paths: ["balances", "integration/balances"],
};

View File

@@ -0,0 +1,8 @@
import type { TestGroup } from "../../types";
export const check: TestGroup = {
name: "check",
description: "Balance check endpoint tests",
tier: "domain",
paths: ["balances/check", "integration/balances/check"],
};

View File

@@ -0,0 +1,8 @@
import type { TestGroup } from "../../types";
export const track: TestGroup = {
name: "track",
description: "Balance track endpoint tests",
tier: "domain",
paths: ["balances/track", "integration/balances/track"],
};

View File

@@ -0,0 +1,8 @@
import type { TestGroup } from "../../types";
export const updateBalance: TestGroup = {
name: "update-balance",
description: "Balance update endpoint tests",
tier: "domain",
paths: ["integration/balances/update"],
};

View File

@@ -1,9 +0,0 @@
import type { TestGroup } from "../types";
export const billing: TestGroup = {
name: "billing",
description:
"All attach, upgrade, downgrade, checkout, invoice, subscription, and legacy billing tests",
tier: "domain",
paths: [],
};

View File

@@ -0,0 +1,15 @@
import type { TestGroup } from "../../types";
export const billing: TestGroup = {
name: "billing",
description:
"All billing tests: legacy attach, migrations, v2 attach, update-subscription, stripe webhooks",
tier: "domain",
paths: [
"legacy/attach",
"migrations",
"billing/attach",
"billing/update-subscription",
"stripe-webhooks",
],
};

View File

@@ -0,0 +1,8 @@
import type { TestGroup } from "../../types";
export const billingV1: TestGroup = {
name: "billing-v1",
description: "V1 legacy attach tests",
tier: "domain",
paths: ["legacy/attach"],
};

View File

@@ -0,0 +1,8 @@
import type { TestGroup } from "../../types";
export const billingV2: TestGroup = {
name: "billing-v2",
description: "V2 billing tests: migrations, attach, update-subscription",
tier: "domain",
paths: ["migrations", "billing/attach", "billing/update-subscription"],
};

View File

@@ -1,9 +1,20 @@
import { readdir } from "node:fs/promises";
import { join, relative } from "node:path";
import { core } from "./core";
import { coreAttach } from "./core/coreAttach";
import { coreBalances } from "./core/coreBalances";
import { coreLegacy } from "./core/coreLegacy";
import { coreMigrations } from "./core/coreMigrations";
import { coreStripe } from "./core/coreStripe";
import { coreUpdateSubscription } from "./core/coreUpdateSubscription";
import { advanced } from "./domains/advanced";
import { balances } from "./domains/balances";
import { billing } from "./domains/billing";
import { balances } from "./domains/balances/balances";
import { check } from "./domains/balances/check";
import { track } from "./domains/balances/track";
import { updateBalance } from "./domains/balances/updateBalance";
import { billing } from "./domains/billing/billing";
import { billingV1 } from "./domains/billing/billingV1";
import { billingV2 } from "./domains/billing/billingV2";
import { crud } from "./domains/crud";
import { misc } from "./domains/misc";
import { webhooks } from "./domains/webhooks";
@@ -14,8 +25,19 @@ export type { TestGroup, TestSuite, TestTier } from "./types";
const allGroups: TestGroup[] = [
core,
coreAttach,
coreBalances,
coreLegacy,
coreMigrations,
coreStripe,
coreUpdateSubscription,
balances,
check,
track,
updateBalance,
billing,
billingV1,
billingV2,
crud,
webhooks,
advanced,