payment.mock.ts 947 B

1234567891011121314151617181920212223242526272829303132
  1. export function createPaymentMock(options: PaymentMockOptions = {}) {
  2. const { shouldFail = false, orderNo = 'MOCK202605190001' } = options;
  3. return {
  4. createOrder: vi.fn().mockImplementation(async (userId: number, planId: number, paymentMethod: string) => {
  5. if (shouldFail) {
  6. throw new Error('Mock Payment failure');
  7. }
  8. return {
  9. orderNo: orderNo,
  10. amount: 99,
  11. planName: '专业版',
  12. qrCode: `https://mock-pay.example.com/qr/${orderNo}`,
  13. };
  14. }),
  15. verifySign: vi.fn().mockReturnValue(true),
  16. handleCallback: vi.fn().mockResolvedValue({ success: true }),
  17. queryOrder: vi.fn().mockResolvedValue({ status: 'PAID' }),
  18. };
  19. }
  20. export interface PaymentMockOptions {
  21. shouldFail?: boolean;
  22. orderNo?: string;
  23. }
  24. export const mockOrder = {
  25. orderNo: 'MOCK202605190001',
  26. amount: 99,
  27. planName: '专业版',
  28. qrCode: 'https://mock-pay.example.com/qr/MOCK202605190001',
  29. };