@solvapay/react 1.0.8-preview.7 → 1.0.8-preview.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/index.cjs +2 -6
  2. package/dist/index.js +2 -6
  3. package/package.json +2 -2
  4. package/dist/CancelPlanButton-BKH_yv1d.d.ts +0 -1113
  5. package/dist/CancelPlanButton-Bb7cvym9.d.cts +0 -1105
  6. package/dist/CancelPlanButton-Cq117t7h.d.ts +0 -1105
  7. package/dist/CancelPlanButton-DQXUTHmF.d.cts +0 -1113
  8. package/dist/PaymentForm-B5dw0i1X.d.ts +0 -934
  9. package/dist/PaymentForm-CesoRQWu.d.cts +0 -934
  10. package/dist/chunk-5FZBOPIW.js +0 -4763
  11. package/dist/chunk-C7SKOENW.js +0 -1889
  12. package/dist/chunk-ISYAH4ZL.js +0 -1889
  13. package/dist/chunk-Q7GPX6X4.js +0 -4748
  14. package/dist/chunk-TP4JPKE2.js +0 -3126
  15. package/dist/chunk-VTGIXJQU.js +0 -4755
  16. package/dist/chunk-XMQ4GBWQ.js +0 -4752
  17. package/dist/index-DLl3UwO3.d.ts +0 -798
  18. package/dist/index-Sj2lHLl8.d.cts +0 -798
  19. package/dist/src/PaymentForm.d.ts +0 -56
  20. package/dist/src/PaymentForm.d.ts.map +0 -1
  21. package/dist/src/PaymentForm.js +0 -212
  22. package/dist/src/PaymentForm.js.map +0 -1
  23. package/dist/src/SolvaPayProvider.d.ts +0 -84
  24. package/dist/src/SolvaPayProvider.d.ts.map +0 -1
  25. package/dist/src/SolvaPayProvider.js +0 -537
  26. package/dist/src/SolvaPayProvider.js.map +0 -1
  27. package/dist/src/adapters/auth.d.ts +0 -43
  28. package/dist/src/adapters/auth.d.ts.map +0 -1
  29. package/dist/src/adapters/auth.js +0 -38
  30. package/dist/src/adapters/auth.js.map +0 -1
  31. package/dist/src/components/PlanBadge.d.ts +0 -31
  32. package/dist/src/components/PlanBadge.d.ts.map +0 -1
  33. package/dist/src/components/PlanBadge.js +0 -119
  34. package/dist/src/components/PlanBadge.js.map +0 -1
  35. package/dist/src/components/PlanSelector.d.ts +0 -49
  36. package/dist/src/components/PlanSelector.d.ts.map +0 -1
  37. package/dist/src/components/PlanSelector.js +0 -82
  38. package/dist/src/components/PlanSelector.js.map +0 -1
  39. package/dist/src/components/Spinner.d.ts +0 -10
  40. package/dist/src/components/Spinner.d.ts.map +0 -1
  41. package/dist/src/components/Spinner.js +0 -14
  42. package/dist/src/components/Spinner.js.map +0 -1
  43. package/dist/src/components/StripePaymentFormWrapper.d.ts +0 -17
  44. package/dist/src/components/StripePaymentFormWrapper.d.ts.map +0 -1
  45. package/dist/src/components/StripePaymentFormWrapper.js +0 -158
  46. package/dist/src/components/StripePaymentFormWrapper.js.map +0 -1
  47. package/dist/src/components/SubscriptionGate.d.ts +0 -21
  48. package/dist/src/components/SubscriptionGate.d.ts.map +0 -1
  49. package/dist/src/components/SubscriptionGate.js +0 -32
  50. package/dist/src/components/SubscriptionGate.js.map +0 -1
  51. package/dist/src/hooks/__tests__/useSubscription.test.d.ts +0 -2
  52. package/dist/src/hooks/__tests__/useSubscription.test.d.ts.map +0 -1
  53. package/dist/src/hooks/__tests__/useSubscription.test.js +0 -554
  54. package/dist/src/hooks/__tests__/useSubscription.test.js.map +0 -1
  55. package/dist/src/hooks/__tests__/useSubscriptionStatus.test.d.ts +0 -2
  56. package/dist/src/hooks/__tests__/useSubscriptionStatus.test.d.ts.map +0 -1
  57. package/dist/src/hooks/__tests__/useSubscriptionStatus.test.js +0 -719
  58. package/dist/src/hooks/__tests__/useSubscriptionStatus.test.js.map +0 -1
  59. package/dist/src/hooks/useCheckout.d.ts +0 -59
  60. package/dist/src/hooks/useCheckout.d.ts.map +0 -1
  61. package/dist/src/hooks/useCheckout.js +0 -138
  62. package/dist/src/hooks/useCheckout.js.map +0 -1
  63. package/dist/src/hooks/useCustomer.d.ts +0 -43
  64. package/dist/src/hooks/useCustomer.d.ts.map +0 -1
  65. package/dist/src/hooks/useCustomer.js +0 -31
  66. package/dist/src/hooks/useCustomer.js.map +0 -1
  67. package/dist/src/hooks/usePlans.d.ts +0 -28
  68. package/dist/src/hooks/usePlans.d.ts.map +0 -1
  69. package/dist/src/hooks/usePlans.js +0 -181
  70. package/dist/src/hooks/usePlans.js.map +0 -1
  71. package/dist/src/hooks/useSolvaPay.d.ts +0 -44
  72. package/dist/src/hooks/useSolvaPay.d.ts.map +0 -1
  73. package/dist/src/hooks/useSolvaPay.js +0 -52
  74. package/dist/src/hooks/useSolvaPay.js.map +0 -1
  75. package/dist/src/hooks/useSubscription.d.ts +0 -46
  76. package/dist/src/hooks/useSubscription.d.ts.map +0 -1
  77. package/dist/src/hooks/useSubscription.js +0 -50
  78. package/dist/src/hooks/useSubscription.js.map +0 -1
  79. package/dist/src/hooks/useSubscriptionStatus.d.ts +0 -19
  80. package/dist/src/hooks/useSubscriptionStatus.d.ts.map +0 -1
  81. package/dist/src/hooks/useSubscriptionStatus.js +0 -68
  82. package/dist/src/hooks/useSubscriptionStatus.js.map +0 -1
  83. package/dist/src/index.d.ts +0 -24
  84. package/dist/src/index.d.ts.map +0 -1
  85. package/dist/src/index.js +0 -26
  86. package/dist/src/index.js.map +0 -1
  87. package/dist/src/types/index.d.ts +0 -339
  88. package/dist/src/types/index.d.ts.map +0 -1
  89. package/dist/src/types/index.js +0 -5
  90. package/dist/src/types/index.js.map +0 -1
  91. package/dist/src/utils/__tests__/subscriptions.test.d.ts +0 -2
  92. package/dist/src/utils/__tests__/subscriptions.test.d.ts.map +0 -1
  93. package/dist/src/utils/__tests__/subscriptions.test.js +0 -121
  94. package/dist/src/utils/__tests__/subscriptions.test.js.map +0 -1
  95. package/dist/src/utils/subscriptions.d.ts +0 -57
  96. package/dist/src/utils/subscriptions.d.ts.map +0 -1
  97. package/dist/src/utils/subscriptions.js +0 -85
  98. package/dist/src/utils/subscriptions.js.map +0 -1
  99. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,554 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { renderHook } from '@testing-library/react';
3
- import { useSubscription } from '../useSubscription';
4
- import * as useSolvaPayModule from '../useSolvaPay';
5
- // Helper function to create a test subscription
6
- const createSubscription = (overrides = {}) => ({
7
- reference: 'sub_123',
8
- planName: 'Test Plan',
9
- agentName: 'Test Agent',
10
- status: 'active',
11
- startDate: '2024-01-01T00:00:00Z',
12
- amount: 1000,
13
- ...overrides,
14
- });
15
- // Helper function to create mock subscription status
16
- const createMockSubscriptionStatus = (overrides = {}) => ({
17
- loading: false,
18
- subscriptions: [],
19
- hasPlan: vi.fn(() => false),
20
- activeSubscription: null,
21
- hasPaidSubscription: false,
22
- activePaidSubscription: null,
23
- ...overrides,
24
- });
25
- // Helper function to create mock context value
26
- const createMockContextValue = (subscription, refetchSubscription = vi.fn(() => Promise.resolve())) => ({
27
- subscription,
28
- refetchSubscription,
29
- createPayment: vi.fn(),
30
- customerRef: 'test_customer_ref',
31
- });
32
- // Mock useSolvaPay
33
- vi.mock('../useSolvaPay', () => ({
34
- useSolvaPay: vi.fn(),
35
- }));
36
- describe('useSubscription', () => {
37
- beforeEach(() => {
38
- vi.clearAllMocks();
39
- });
40
- describe('Basic functionality', () => {
41
- it('should return subscription status from context', () => {
42
- const mockSubscription = createMockSubscriptionStatus({
43
- loading: false,
44
- subscriptions: [createSubscription()],
45
- });
46
- const mockRefetch = vi.fn(() => Promise.resolve());
47
- const mockContextValue = createMockContextValue(mockSubscription, mockRefetch);
48
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
49
- const { result } = renderHook(() => useSubscription());
50
- expect(result.current.loading).toBe(false);
51
- expect(result.current.subscriptions).toHaveLength(1);
52
- expect(result.current.subscriptions[0].planName).toBe('Test Plan');
53
- });
54
- it('should return refetch function', () => {
55
- const mockSubscription = createMockSubscriptionStatus();
56
- const mockRefetch = vi.fn(() => Promise.resolve());
57
- const mockContextValue = createMockContextValue(mockSubscription, mockRefetch);
58
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
59
- const { result } = renderHook(() => useSubscription());
60
- expect(result.current.refetch).toBeDefined();
61
- expect(typeof result.current.refetch).toBe('function');
62
- });
63
- it('should spread all subscription status properties', () => {
64
- const mockSubscription = createMockSubscriptionStatus({
65
- loading: true,
66
- customerRef: 'customer_123',
67
- email: 'test@example.com',
68
- name: 'Test User',
69
- subscriptions: [createSubscription()],
70
- });
71
- const mockContextValue = createMockContextValue(mockSubscription);
72
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
73
- const { result } = renderHook(() => useSubscription());
74
- expect(result.current.loading).toBe(true);
75
- expect(result.current.customerRef).toBe('customer_123');
76
- expect(result.current.email).toBe('test@example.com');
77
- expect(result.current.name).toBe('Test User');
78
- expect(result.current.subscriptions).toHaveLength(1);
79
- });
80
- });
81
- describe('Loading state', () => {
82
- it('should return loading: true when context indicates loading', () => {
83
- const mockSubscription = createMockSubscriptionStatus({ loading: true });
84
- const mockContextValue = createMockContextValue(mockSubscription);
85
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
86
- const { result } = renderHook(() => useSubscription());
87
- expect(result.current.loading).toBe(true);
88
- });
89
- it('should return loading: false when context indicates not loading', () => {
90
- const mockSubscription = createMockSubscriptionStatus({ loading: false });
91
- const mockContextValue = createMockContextValue(mockSubscription);
92
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
93
- const { result } = renderHook(() => useSubscription());
94
- expect(result.current.loading).toBe(false);
95
- });
96
- });
97
- describe('Subscriptions array', () => {
98
- it('should return empty subscriptions array when no subscriptions exist', () => {
99
- const mockSubscription = createMockSubscriptionStatus({ subscriptions: [] });
100
- const mockContextValue = createMockContextValue(mockSubscription);
101
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
102
- const { result } = renderHook(() => useSubscription());
103
- expect(result.current.subscriptions).toEqual([]);
104
- expect(result.current.subscriptions).toHaveLength(0);
105
- });
106
- it('should return single subscription when one subscription exists', () => {
107
- const subscription = createSubscription({ planName: 'Pro Plan' });
108
- const mockSubscription = createMockSubscriptionStatus({
109
- subscriptions: [subscription],
110
- });
111
- const mockContextValue = createMockContextValue(mockSubscription);
112
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
113
- const { result } = renderHook(() => useSubscription());
114
- expect(result.current.subscriptions).toHaveLength(1);
115
- expect(result.current.subscriptions[0].planName).toBe('Pro Plan');
116
- });
117
- it('should return multiple subscriptions when multiple exist', () => {
118
- const subscriptions = [
119
- createSubscription({ planName: 'Plan 1', reference: 'sub_1' }),
120
- createSubscription({ planName: 'Plan 2', reference: 'sub_2' }),
121
- createSubscription({ planName: 'Plan 3', reference: 'sub_3' }),
122
- ];
123
- const mockSubscription = createMockSubscriptionStatus({ subscriptions });
124
- const mockContextValue = createMockContextValue(mockSubscription);
125
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
126
- const { result } = renderHook(() => useSubscription());
127
- expect(result.current.subscriptions).toHaveLength(3);
128
- expect(result.current.subscriptions[0].planName).toBe('Plan 1');
129
- expect(result.current.subscriptions[1].planName).toBe('Plan 2');
130
- expect(result.current.subscriptions[2].planName).toBe('Plan 3');
131
- });
132
- });
133
- describe('activeSubscription', () => {
134
- it('should return null when no active subscription exists', () => {
135
- const mockSubscription = createMockSubscriptionStatus({
136
- activeSubscription: null,
137
- });
138
- const mockContextValue = createMockContextValue(mockSubscription);
139
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
140
- const { result } = renderHook(() => useSubscription());
141
- expect(result.current.activeSubscription).toBeNull();
142
- });
143
- it('should return active subscription when one exists', () => {
144
- const activeSub = createSubscription({ planName: 'Active Plan' });
145
- const mockSubscription = createMockSubscriptionStatus({
146
- activeSubscription: activeSub,
147
- });
148
- const mockContextValue = createMockContextValue(mockSubscription);
149
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
150
- const { result } = renderHook(() => useSubscription());
151
- expect(result.current.activeSubscription).not.toBeNull();
152
- expect(result.current.activeSubscription?.planName).toBe('Active Plan');
153
- });
154
- it('should return free plan as activeSubscription when free plan is active', () => {
155
- const freeSub = createSubscription({
156
- planName: 'Free Plan',
157
- amount: 0,
158
- });
159
- const mockSubscription = createMockSubscriptionStatus({
160
- activeSubscription: freeSub,
161
- });
162
- const mockContextValue = createMockContextValue(mockSubscription);
163
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
164
- const { result } = renderHook(() => useSubscription());
165
- expect(result.current.activeSubscription).not.toBeNull();
166
- expect(result.current.activeSubscription?.planName).toBe('Free Plan');
167
- expect(result.current.activeSubscription?.amount).toBe(0);
168
- });
169
- it('should return paid plan as activeSubscription when paid plan is active', () => {
170
- const paidSub = createSubscription({
171
- planName: 'Paid Plan',
172
- amount: 2000,
173
- });
174
- const mockSubscription = createMockSubscriptionStatus({
175
- activeSubscription: paidSub,
176
- });
177
- const mockContextValue = createMockContextValue(mockSubscription);
178
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
179
- const { result } = renderHook(() => useSubscription());
180
- expect(result.current.activeSubscription).not.toBeNull();
181
- expect(result.current.activeSubscription?.planName).toBe('Paid Plan');
182
- expect(result.current.activeSubscription?.amount).toBe(2000);
183
- });
184
- });
185
- describe('hasPaidSubscription', () => {
186
- it('should return false when no paid subscriptions exist', () => {
187
- const mockSubscription = createMockSubscriptionStatus({
188
- hasPaidSubscription: false,
189
- });
190
- const mockContextValue = createMockContextValue(mockSubscription);
191
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
192
- const { result } = renderHook(() => useSubscription());
193
- expect(result.current.hasPaidSubscription).toBe(false);
194
- });
195
- it('should return true when paid subscription exists', () => {
196
- const mockSubscription = createMockSubscriptionStatus({
197
- hasPaidSubscription: true,
198
- });
199
- const mockContextValue = createMockContextValue(mockSubscription);
200
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
201
- const { result } = renderHook(() => useSubscription());
202
- expect(result.current.hasPaidSubscription).toBe(true);
203
- });
204
- it('should return false when only free subscriptions exist', () => {
205
- const freeSub = createSubscription({ amount: 0 });
206
- const mockSubscription = createMockSubscriptionStatus({
207
- subscriptions: [freeSub],
208
- hasPaidSubscription: false,
209
- activeSubscription: freeSub,
210
- });
211
- const mockContextValue = createMockContextValue(mockSubscription);
212
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
213
- const { result } = renderHook(() => useSubscription());
214
- expect(result.current.hasPaidSubscription).toBe(false);
215
- });
216
- });
217
- describe('activePaidSubscription', () => {
218
- it('should return null when no paid subscription exists', () => {
219
- const mockSubscription = createMockSubscriptionStatus({
220
- activePaidSubscription: null,
221
- });
222
- const mockContextValue = createMockContextValue(mockSubscription);
223
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
224
- const { result } = renderHook(() => useSubscription());
225
- expect(result.current.activePaidSubscription).toBeNull();
226
- });
227
- it('should return paid subscription when one exists', () => {
228
- const paidSub = createSubscription({
229
- planName: 'Premium Plan',
230
- amount: 5000,
231
- });
232
- const mockSubscription = createMockSubscriptionStatus({
233
- activePaidSubscription: paidSub,
234
- });
235
- const mockContextValue = createMockContextValue(mockSubscription);
236
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
237
- const { result } = renderHook(() => useSubscription());
238
- expect(result.current.activePaidSubscription).not.toBeNull();
239
- expect(result.current.activePaidSubscription?.planName).toBe('Premium Plan');
240
- expect(result.current.activePaidSubscription?.amount).toBe(5000);
241
- });
242
- it('should return null when only free subscriptions exist', () => {
243
- const freeSub = createSubscription({ amount: 0 });
244
- const mockSubscription = createMockSubscriptionStatus({
245
- activePaidSubscription: null,
246
- activeSubscription: freeSub,
247
- });
248
- const mockContextValue = createMockContextValue(mockSubscription);
249
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
250
- const { result } = renderHook(() => useSubscription());
251
- expect(result.current.activePaidSubscription).toBeNull();
252
- });
253
- });
254
- describe('hasPlan function', () => {
255
- it('should return hasPlan function from context', () => {
256
- const mockHasPlan = vi.fn(() => true);
257
- const mockSubscription = createMockSubscriptionStatus({
258
- hasPlan: mockHasPlan,
259
- });
260
- const mockContextValue = createMockContextValue(mockSubscription);
261
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
262
- const { result } = renderHook(() => useSubscription());
263
- expect(result.current.hasPlan).toBeDefined();
264
- expect(typeof result.current.hasPlan).toBe('function');
265
- expect(result.current.hasPlan('Test Plan')).toBe(true);
266
- expect(mockHasPlan).toHaveBeenCalledWith('Test Plan');
267
- });
268
- it('should return false when hasPlan returns false', () => {
269
- const mockHasPlan = vi.fn(() => false);
270
- const mockSubscription = createMockSubscriptionStatus({
271
- hasPlan: mockHasPlan,
272
- });
273
- const mockContextValue = createMockContextValue(mockSubscription);
274
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
275
- const { result } = renderHook(() => useSubscription());
276
- expect(result.current.hasPlan('Non-existent Plan')).toBe(false);
277
- expect(mockHasPlan).toHaveBeenCalledWith('Non-existent Plan');
278
- });
279
- });
280
- describe('Customer information', () => {
281
- it('should return customerRef when provided', () => {
282
- const mockSubscription = createMockSubscriptionStatus({
283
- customerRef: 'customer_abc123',
284
- });
285
- const mockContextValue = createMockContextValue(mockSubscription);
286
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
287
- const { result } = renderHook(() => useSubscription());
288
- expect(result.current.customerRef).toBe('customer_abc123');
289
- });
290
- it('should return undefined when customerRef is not provided', () => {
291
- const mockSubscription = createMockSubscriptionStatus({
292
- customerRef: undefined,
293
- });
294
- const mockContextValue = createMockContextValue(mockSubscription);
295
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
296
- const { result } = renderHook(() => useSubscription());
297
- expect(result.current.customerRef).toBeUndefined();
298
- });
299
- it('should return email when provided', () => {
300
- const mockSubscription = createMockSubscriptionStatus({
301
- email: 'user@example.com',
302
- });
303
- const mockContextValue = createMockContextValue(mockSubscription);
304
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
305
- const { result } = renderHook(() => useSubscription());
306
- expect(result.current.email).toBe('user@example.com');
307
- });
308
- it('should return name when provided', () => {
309
- const mockSubscription = createMockSubscriptionStatus({
310
- name: 'John Doe',
311
- });
312
- const mockContextValue = createMockContextValue(mockSubscription);
313
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
314
- const { result } = renderHook(() => useSubscription());
315
- expect(result.current.name).toBe('John Doe');
316
- });
317
- });
318
- describe('Refetch function', () => {
319
- it('should call refetchSubscription from context when refetch is called', async () => {
320
- const mockRefetch = vi.fn(() => Promise.resolve());
321
- const mockSubscription = createMockSubscriptionStatus();
322
- const mockContextValue = createMockContextValue(mockSubscription, mockRefetch);
323
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
324
- const { result } = renderHook(() => useSubscription());
325
- await result.current.refetch();
326
- expect(mockRefetch).toHaveBeenCalledTimes(1);
327
- });
328
- it('should return a promise from refetch', async () => {
329
- const mockRefetch = vi.fn(() => Promise.resolve());
330
- const mockSubscription = createMockSubscriptionStatus();
331
- const mockContextValue = createMockContextValue(mockSubscription, mockRefetch);
332
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
333
- const { result } = renderHook(() => useSubscription());
334
- const refetchPromise = result.current.refetch();
335
- expect(refetchPromise).toBeInstanceOf(Promise);
336
- await refetchPromise;
337
- expect(mockRefetch).toHaveBeenCalled();
338
- });
339
- it('should handle refetch errors gracefully', async () => {
340
- const mockRefetch = vi.fn(() => Promise.reject(new Error('Refetch failed')));
341
- const mockSubscription = createMockSubscriptionStatus();
342
- const mockContextValue = createMockContextValue(mockSubscription, mockRefetch);
343
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
344
- const { result } = renderHook(() => useSubscription());
345
- await expect(result.current.refetch()).rejects.toThrow('Refetch failed');
346
- expect(mockRefetch).toHaveBeenCalledTimes(1);
347
- });
348
- });
349
- describe('Complex scenarios', () => {
350
- it('should handle multiple paid subscriptions correctly', () => {
351
- const paidSub1 = createSubscription({
352
- planName: 'Premium',
353
- amount: 5000,
354
- reference: 'sub_premium',
355
- startDate: '2024-01-01T00:00:00Z',
356
- });
357
- const paidSub2 = createSubscription({
358
- planName: 'Pro',
359
- amount: 3000,
360
- reference: 'sub_pro',
361
- startDate: '2024-02-01T00:00:00Z',
362
- });
363
- const mockSubscription = createMockSubscriptionStatus({
364
- subscriptions: [paidSub1, paidSub2],
365
- hasPaidSubscription: true,
366
- activePaidSubscription: paidSub2, // Most recent
367
- activeSubscription: paidSub2,
368
- });
369
- const mockContextValue = createMockContextValue(mockSubscription);
370
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
371
- const { result } = renderHook(() => useSubscription());
372
- expect(result.current.hasPaidSubscription).toBe(true);
373
- expect(result.current.activePaidSubscription?.planName).toBe('Pro');
374
- expect(result.current.activeSubscription?.planName).toBe('Pro');
375
- expect(result.current.subscriptions).toHaveLength(2);
376
- });
377
- it('should handle mixed paid and free subscriptions', () => {
378
- const freeSub = createSubscription({
379
- planName: 'Free',
380
- amount: 0,
381
- reference: 'sub_free',
382
- });
383
- const paidSub = createSubscription({
384
- planName: 'Paid',
385
- amount: 1000,
386
- reference: 'sub_paid',
387
- });
388
- const mockSubscription = createMockSubscriptionStatus({
389
- subscriptions: [freeSub, paidSub],
390
- hasPaidSubscription: true,
391
- activePaidSubscription: paidSub,
392
- activeSubscription: paidSub, // Paid is primary
393
- });
394
- const mockContextValue = createMockContextValue(mockSubscription);
395
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
396
- const { result } = renderHook(() => useSubscription());
397
- expect(result.current.hasPaidSubscription).toBe(true);
398
- expect(result.current.activePaidSubscription?.planName).toBe('Paid');
399
- expect(result.current.activeSubscription?.planName).toBe('Paid');
400
- });
401
- it('should handle cancelled subscription with endDate - should still grant access until expiration', () => {
402
- const cancelledSub = createSubscription({
403
- planName: 'Cancelled Plan',
404
- status: 'active', // Backend keeps status as 'active' until expiration
405
- amount: 2000,
406
- endDate: '2025-12-31T23:59:59Z',
407
- cancelledAt: '2024-06-01T00:00:00Z',
408
- });
409
- const mockSubscription = createMockSubscriptionStatus({
410
- subscriptions: [cancelledSub],
411
- activeSubscription: cancelledSub, // Still active until endDate
412
- hasPaidSubscription: true, // Status is active, so still grants access
413
- activePaidSubscription: cancelledSub, // Status is active, so still grants access
414
- });
415
- const mockContextValue = createMockContextValue(mockSubscription);
416
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
417
- const { result } = renderHook(() => useSubscription());
418
- expect(result.current.activeSubscription?.planName).toBe('Cancelled Plan');
419
- expect(result.current.activeSubscription?.status).toBe('active');
420
- expect(result.current.hasPaidSubscription).toBe(true); // Should still grant access
421
- expect(result.current.activePaidSubscription?.planName).toBe('Cancelled Plan');
422
- });
423
- it('should handle empty state with no subscriptions', () => {
424
- const mockSubscription = createMockSubscriptionStatus({
425
- subscriptions: [],
426
- activeSubscription: null,
427
- hasPaidSubscription: false,
428
- activePaidSubscription: null,
429
- customerRef: undefined,
430
- email: undefined,
431
- name: undefined,
432
- });
433
- const mockContextValue = createMockContextValue(mockSubscription);
434
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
435
- const { result } = renderHook(() => useSubscription());
436
- expect(result.current.subscriptions).toEqual([]);
437
- expect(result.current.activeSubscription).toBeNull();
438
- expect(result.current.hasPaidSubscription).toBe(false);
439
- expect(result.current.activePaidSubscription).toBeNull();
440
- });
441
- });
442
- describe('Subscription properties', () => {
443
- it('should return all subscription properties correctly', () => {
444
- const subscription = createSubscription({
445
- reference: 'sub_full',
446
- planName: 'Full Plan',
447
- agentName: 'Full Agent',
448
- status: 'active',
449
- startDate: '2024-01-01T00:00:00Z',
450
- endDate: '2024-12-31T23:59:59Z',
451
- cancelledAt: undefined,
452
- cancellationReason: undefined,
453
- amount: 1500,
454
- });
455
- const mockSubscription = createMockSubscriptionStatus({
456
- subscriptions: [subscription],
457
- activeSubscription: subscription,
458
- });
459
- const mockContextValue = createMockContextValue(mockSubscription);
460
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
461
- const { result } = renderHook(() => useSubscription());
462
- const returnedSub = result.current.subscriptions[0];
463
- expect(returnedSub.reference).toBe('sub_full');
464
- expect(returnedSub.planName).toBe('Full Plan');
465
- expect(returnedSub.agentName).toBe('Full Agent');
466
- expect(returnedSub.status).toBe('active');
467
- expect(returnedSub.startDate).toBe('2024-01-01T00:00:00Z');
468
- expect(returnedSub.endDate).toBe('2024-12-31T23:59:59Z');
469
- expect(returnedSub.amount).toBe(1500);
470
- });
471
- it('should handle subscription with cancellation reason', () => {
472
- const subscription = createSubscription({
473
- status: 'active', // Backend keeps status as 'active' until expiration
474
- cancelledAt: '2024-06-01T00:00:00Z',
475
- cancellationReason: 'Customer request',
476
- });
477
- const mockSubscription = createMockSubscriptionStatus({
478
- subscriptions: [subscription],
479
- activeSubscription: subscription,
480
- });
481
- const mockContextValue = createMockContextValue(mockSubscription);
482
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
483
- const { result } = renderHook(() => useSubscription());
484
- const returnedSub = result.current.subscriptions[0];
485
- expect(returnedSub.status).toBe('active');
486
- expect(returnedSub.cancelledAt).toBe('2024-06-01T00:00:00Z');
487
- expect(returnedSub.cancellationReason).toBe('Customer request');
488
- });
489
- });
490
- describe('Edge cases', () => {
491
- it('should handle undefined amount (treated as free)', () => {
492
- const subscription = createSubscription({
493
- amount: undefined,
494
- });
495
- const mockSubscription = createMockSubscriptionStatus({
496
- subscriptions: [subscription],
497
- activeSubscription: subscription,
498
- hasPaidSubscription: false,
499
- });
500
- const mockContextValue = createMockContextValue(mockSubscription);
501
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
502
- const { result } = renderHook(() => useSubscription());
503
- expect(result.current.subscriptions[0].amount).toBeUndefined();
504
- expect(result.current.hasPaidSubscription).toBe(false);
505
- });
506
- it('should handle zero amount (treated as free)', () => {
507
- const subscription = createSubscription({
508
- amount: 0,
509
- });
510
- const mockSubscription = createMockSubscriptionStatus({
511
- subscriptions: [subscription],
512
- activeSubscription: subscription,
513
- hasPaidSubscription: false,
514
- });
515
- const mockContextValue = createMockContextValue(mockSubscription);
516
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
517
- const { result } = renderHook(() => useSubscription());
518
- expect(result.current.subscriptions[0].amount).toBe(0);
519
- expect(result.current.hasPaidSubscription).toBe(false);
520
- });
521
- it('should handle very large subscription amounts', () => {
522
- const subscription = createSubscription({
523
- amount: 999999999,
524
- });
525
- const mockSubscription = createMockSubscriptionStatus({
526
- subscriptions: [subscription],
527
- activeSubscription: subscription,
528
- hasPaidSubscription: true,
529
- activePaidSubscription: subscription,
530
- });
531
- const mockContextValue = createMockContextValue(mockSubscription);
532
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
533
- const { result } = renderHook(() => useSubscription());
534
- expect(result.current.subscriptions[0].amount).toBe(999999999);
535
- expect(result.current.hasPaidSubscription).toBe(true);
536
- });
537
- it('should handle negative amount (edge case)', () => {
538
- const subscription = createSubscription({
539
- amount: -100,
540
- });
541
- const mockSubscription = createMockSubscriptionStatus({
542
- subscriptions: [subscription],
543
- activeSubscription: subscription,
544
- hasPaidSubscription: false, // Negative is not considered paid
545
- });
546
- const mockContextValue = createMockContextValue(mockSubscription);
547
- vi.mocked(useSolvaPayModule.useSolvaPay).mockReturnValue(mockContextValue);
548
- const { result } = renderHook(() => useSubscription());
549
- expect(result.current.subscriptions[0].amount).toBe(-100);
550
- expect(result.current.hasPaidSubscription).toBe(false);
551
- });
552
- });
553
- });
554
- //# sourceMappingURL=useSubscription.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSubscription.test.js","sourceRoot":"","sources":["../../../../src/hooks/__tests__/useSubscription.test.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=useSubscriptionStatus.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSubscriptionStatus.test.d.ts","sourceRoot":"","sources":["../../../../src/hooks/__tests__/useSubscriptionStatus.test.tsx"],"names":[],"mappings":""}