refactor(data): replace schema classes with readonly models
This commit is contained in:
@@ -3,9 +3,11 @@ import { fromPromise } from "xstate";
|
||||
|
||||
import {
|
||||
CreatePaymentOrderResponse,
|
||||
CreatePaymentOrderResponseSchema,
|
||||
type PayChannel,
|
||||
PaymentOrderStatusResponse,
|
||||
PaymentOrderStatusResponseSchema,
|
||||
PaymentPlansResponse,
|
||||
PaymentPlansResponseSchema,
|
||||
} from "@/data/schemas/payment";
|
||||
import { paymentMachine } from "@/stores/payment/payment-machine";
|
||||
import type { PaymentPlanCatalog } from "@/stores/payment/payment-state";
|
||||
@@ -114,39 +116,37 @@ export function createTestPaymentMachine(
|
||||
overrides.onLoadCatalog?.(input.catalog);
|
||||
return overrides.cachedPlans ?? null;
|
||||
}),
|
||||
refreshPlans: fromPromise<
|
||||
PaymentPlansResponse,
|
||||
PaymentPlansActorInput
|
||||
>(async ({ input }) => {
|
||||
overrides.onRefreshCatalog?.(input.catalog);
|
||||
if (overrides.refreshPlans) return overrides.refreshPlans();
|
||||
return (
|
||||
overrides.refreshedPlans ??
|
||||
PaymentPlansResponse.from({
|
||||
plans: [monthlyPlan, lifetimePlan, creditPlan],
|
||||
})
|
||||
);
|
||||
}),
|
||||
createOrder: fromPromise<
|
||||
CreatePaymentOrderResponse,
|
||||
CreateOrderInput
|
||||
>(async ({ input }) => {
|
||||
createOrderSpy(input);
|
||||
if (overrides.createOrderError) throw overrides.createOrderError;
|
||||
return CreatePaymentOrderResponse.from({
|
||||
orderId: "pay_test_001",
|
||||
payParams: {
|
||||
provider: "stripe",
|
||||
clientSecret: "pi_test_secret_test",
|
||||
},
|
||||
});
|
||||
}),
|
||||
refreshPlans: fromPromise<PaymentPlansResponse, PaymentPlansActorInput>(
|
||||
async ({ input }) => {
|
||||
overrides.onRefreshCatalog?.(input.catalog);
|
||||
if (overrides.refreshPlans) return overrides.refreshPlans();
|
||||
return (
|
||||
overrides.refreshedPlans ??
|
||||
PaymentPlansResponseSchema.parse({
|
||||
plans: [monthlyPlan, lifetimePlan, creditPlan],
|
||||
})
|
||||
);
|
||||
},
|
||||
),
|
||||
createOrder: fromPromise<CreatePaymentOrderResponse, CreateOrderInput>(
|
||||
async ({ input }) => {
|
||||
createOrderSpy(input);
|
||||
if (overrides.createOrderError) throw overrides.createOrderError;
|
||||
return CreatePaymentOrderResponseSchema.parse({
|
||||
orderId: "pay_test_001",
|
||||
payParams: {
|
||||
provider: "stripe",
|
||||
clientSecret: "pi_test_secret_test",
|
||||
},
|
||||
});
|
||||
},
|
||||
),
|
||||
pollOrderStatus: fromPromise(async () => {
|
||||
const status =
|
||||
orderStatuses[Math.min(pollCount, orderStatuses.length - 1)] ??
|
||||
orderStatus;
|
||||
pollCount += 1;
|
||||
return PaymentOrderStatusResponse.from({
|
||||
return PaymentOrderStatusResponseSchema.parse({
|
||||
orderId: "pay_test_001",
|
||||
status,
|
||||
orderType: "vip_monthly",
|
||||
|
||||
Reference in New Issue
Block a user