@congminh1254/shopee-sdk 1.6.2 → 1.8.0

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 (158) hide show
  1. package/README.md +9 -3
  2. package/lib/__tests__/errors.test.d.ts +1 -0
  3. package/lib/__tests__/errors.test.js +49 -0
  4. package/lib/__tests__/errors.test.js.map +1 -0
  5. package/lib/__tests__/fetch.test.d.ts +1 -0
  6. package/lib/__tests__/fetch.test.js +494 -0
  7. package/lib/__tests__/fetch.test.js.map +1 -0
  8. package/lib/__tests__/integration.test.d.ts +1 -0
  9. package/lib/__tests__/integration.test.js +201 -0
  10. package/lib/__tests__/integration.test.js.map +1 -0
  11. package/lib/__tests__/managers/account-health.manager.test.d.ts +1 -0
  12. package/lib/__tests__/managers/account-health.manager.test.js +446 -0
  13. package/lib/__tests__/managers/account-health.manager.test.js.map +1 -0
  14. package/lib/__tests__/managers/add-on-deal.manager.test.d.ts +1 -0
  15. package/lib/__tests__/managers/add-on-deal.manager.test.js +636 -0
  16. package/lib/__tests__/managers/add-on-deal.manager.test.js.map +1 -0
  17. package/lib/__tests__/managers/ads.manager.test.d.ts +1 -0
  18. package/lib/__tests__/managers/ads.manager.test.js +1016 -0
  19. package/lib/__tests__/managers/ads.manager.test.js.map +1 -0
  20. package/lib/__tests__/managers/ams.manager.test.d.ts +1 -0
  21. package/lib/__tests__/managers/ams.manager.test.js +1170 -0
  22. package/lib/__tests__/managers/ams.manager.test.js.map +1 -0
  23. package/lib/__tests__/managers/auth.manager.test.d.ts +1 -0
  24. package/lib/__tests__/managers/auth.manager.test.js +193 -0
  25. package/lib/__tests__/managers/auth.manager.test.js.map +1 -0
  26. package/lib/__tests__/managers/bundle-deal.manager.test.d.ts +1 -0
  27. package/lib/__tests__/managers/bundle-deal.manager.test.js +465 -0
  28. package/lib/__tests__/managers/bundle-deal.manager.test.js.map +1 -0
  29. package/lib/__tests__/managers/discount.manager.test.d.ts +1 -0
  30. package/lib/__tests__/managers/discount.manager.test.js +615 -0
  31. package/lib/__tests__/managers/discount.manager.test.js.map +1 -0
  32. package/lib/__tests__/managers/fbs.manager.test.d.ts +1 -0
  33. package/lib/__tests__/managers/fbs.manager.test.js +349 -0
  34. package/lib/__tests__/managers/fbs.manager.test.js.map +1 -0
  35. package/lib/__tests__/managers/first-mile.manager.test.d.ts +1 -0
  36. package/lib/__tests__/managers/first-mile.manager.test.js +629 -0
  37. package/lib/__tests__/managers/first-mile.manager.test.js.map +1 -0
  38. package/lib/__tests__/managers/follow-prize.manager.test.d.ts +1 -0
  39. package/lib/__tests__/managers/follow-prize.manager.test.js +408 -0
  40. package/lib/__tests__/managers/follow-prize.manager.test.js.map +1 -0
  41. package/lib/__tests__/managers/global-product.manager.test.d.ts +1 -0
  42. package/lib/__tests__/managers/global-product.manager.test.js +1253 -0
  43. package/lib/__tests__/managers/global-product.manager.test.js.map +1 -0
  44. package/lib/__tests__/managers/livestream.manager.test.d.ts +1 -0
  45. package/lib/__tests__/managers/livestream.manager.test.js +877 -0
  46. package/lib/__tests__/managers/livestream.manager.test.js.map +1 -0
  47. package/lib/__tests__/managers/logistics.manager.test.d.ts +1 -0
  48. package/lib/__tests__/managers/logistics.manager.test.js +1125 -0
  49. package/lib/__tests__/managers/logistics.manager.test.js.map +1 -0
  50. package/lib/__tests__/managers/media-space.manager.test.d.ts +1 -0
  51. package/lib/__tests__/managers/media-space.manager.test.js +556 -0
  52. package/lib/__tests__/managers/media-space.manager.test.js.map +1 -0
  53. package/lib/__tests__/managers/media.manager.test.d.ts +1 -0
  54. package/lib/__tests__/managers/media.manager.test.js +681 -0
  55. package/lib/__tests__/managers/media.manager.test.js.map +1 -0
  56. package/lib/__tests__/managers/merchant.manager.test.d.ts +1 -0
  57. package/lib/__tests__/managers/merchant.manager.test.js +328 -0
  58. package/lib/__tests__/managers/merchant.manager.test.js.map +1 -0
  59. package/lib/__tests__/managers/order.manager.test.d.ts +1 -0
  60. package/lib/__tests__/managers/order.manager.test.js +937 -0
  61. package/lib/__tests__/managers/order.manager.test.js.map +1 -0
  62. package/lib/__tests__/managers/payment.manager.test.d.ts +1 -0
  63. package/lib/__tests__/managers/payment.manager.test.js +1167 -0
  64. package/lib/__tests__/managers/payment.manager.test.js.map +1 -0
  65. package/lib/__tests__/managers/product.manager.test.d.ts +1 -0
  66. package/lib/__tests__/managers/product.manager.test.js +2247 -0
  67. package/lib/__tests__/managers/product.manager.test.js.map +1 -0
  68. package/lib/__tests__/managers/public.manager.test.d.ts +1 -0
  69. package/lib/__tests__/managers/public.manager.test.js +209 -0
  70. package/lib/__tests__/managers/public.manager.test.js.map +1 -0
  71. package/lib/__tests__/managers/push.manager.test.d.ts +1 -0
  72. package/lib/__tests__/managers/push.manager.test.js +244 -0
  73. package/lib/__tests__/managers/push.manager.test.js.map +1 -0
  74. package/lib/__tests__/managers/returns.manager.test.d.ts +1 -0
  75. package/lib/__tests__/managers/returns.manager.test.js +783 -0
  76. package/lib/__tests__/managers/returns.manager.test.js.map +1 -0
  77. package/lib/__tests__/managers/sbs.manager.test.d.ts +1 -0
  78. package/lib/__tests__/managers/sbs.manager.test.js +492 -0
  79. package/lib/__tests__/managers/sbs.manager.test.js.map +1 -0
  80. package/lib/__tests__/managers/shop-category.manager.test.d.ts +1 -0
  81. package/lib/__tests__/managers/shop-category.manager.test.js +425 -0
  82. package/lib/__tests__/managers/shop-category.manager.test.js.map +1 -0
  83. package/lib/__tests__/managers/shop-flash-sale.manager.test.d.ts +1 -0
  84. package/lib/__tests__/managers/shop-flash-sale.manager.test.js +492 -0
  85. package/lib/__tests__/managers/shop-flash-sale.manager.test.js.map +1 -0
  86. package/lib/__tests__/managers/shop.manager.test.d.ts +1 -0
  87. package/lib/__tests__/managers/shop.manager.test.js +637 -0
  88. package/lib/__tests__/managers/shop.manager.test.js.map +1 -0
  89. package/lib/__tests__/managers/top-picks.manager.test.d.ts +1 -0
  90. package/lib/__tests__/managers/top-picks.manager.test.js +324 -0
  91. package/lib/__tests__/managers/top-picks.manager.test.js.map +1 -0
  92. package/lib/__tests__/managers/video.manager.test.d.ts +1 -0
  93. package/lib/__tests__/managers/video.manager.test.js +1039 -0
  94. package/lib/__tests__/managers/video.manager.test.js.map +1 -0
  95. package/lib/__tests__/managers/voucher.manager.test.d.ts +1 -0
  96. package/lib/__tests__/managers/voucher.manager.test.js +442 -0
  97. package/lib/__tests__/managers/voucher.manager.test.js.map +1 -0
  98. package/lib/__tests__/sdk.test.d.ts +1 -0
  99. package/lib/__tests__/sdk.test.js +316 -0
  100. package/lib/__tests__/sdk.test.js.map +1 -0
  101. package/lib/__tests__/storage/custom-token-storage.test.d.ts +1 -0
  102. package/lib/__tests__/storage/custom-token-storage.test.js +337 -0
  103. package/lib/__tests__/storage/custom-token-storage.test.js.map +1 -0
  104. package/lib/__tests__/utils/signature.test.d.ts +1 -0
  105. package/lib/__tests__/utils/signature.test.js +38 -0
  106. package/lib/__tests__/utils/signature.test.js.map +1 -0
  107. package/lib/__tests__/utils/spec-audit.test.d.ts +1 -0
  108. package/lib/__tests__/utils/spec-audit.test.js +176 -0
  109. package/lib/__tests__/utils/spec-audit.test.js.map +1 -0
  110. package/lib/errors.js +2 -0
  111. package/lib/errors.js.map +1 -1
  112. package/lib/fetch.js +1 -1
  113. package/lib/fetch.js.map +1 -1
  114. package/lib/managers/ads.manager.d.ts +1 -41
  115. package/lib/managers/ads.manager.js +0 -54
  116. package/lib/managers/ads.manager.js.map +1 -1
  117. package/lib/managers/auth.manager.d.ts +2 -1
  118. package/lib/managers/auth.manager.js +2 -5
  119. package/lib/managers/auth.manager.js.map +1 -1
  120. package/lib/managers/base.manager.js +1 -0
  121. package/lib/managers/base.manager.js.map +1 -1
  122. package/lib/managers/media.manager.d.ts +36 -1
  123. package/lib/managers/media.manager.js +68 -0
  124. package/lib/managers/media.manager.js.map +1 -1
  125. package/lib/managers/order.manager.js +1 -0
  126. package/lib/managers/order.manager.js.map +1 -1
  127. package/lib/managers/payment.manager.d.ts +13 -1
  128. package/lib/managers/payment.manager.js +26 -0
  129. package/lib/managers/payment.manager.js.map +1 -1
  130. package/lib/managers/product.manager.js +1 -1
  131. package/lib/managers/product.manager.js.map +1 -1
  132. package/lib/schemas/ads.d.ts +2 -56
  133. package/lib/schemas/ams.d.ts +92 -0
  134. package/lib/schemas/base.d.ts +2 -0
  135. package/lib/schemas/discount.d.ts +4 -0
  136. package/lib/schemas/fetch.d.ts +1 -1
  137. package/lib/schemas/livestream.d.ts +14 -0
  138. package/lib/schemas/media.d.ts +107 -0
  139. package/lib/schemas/merchant.d.ts +2 -0
  140. package/lib/schemas/order.d.ts +22 -0
  141. package/lib/schemas/payment.d.ts +96 -0
  142. package/lib/schemas/product.d.ts +253 -15
  143. package/lib/schemas/public.d.ts +3 -0
  144. package/lib/schemas/region.d.ts +9 -2
  145. package/lib/schemas/region.js +9 -2
  146. package/lib/schemas/region.js.map +1 -1
  147. package/lib/schemas/returns.d.ts +38 -1
  148. package/lib/schemas/shop.d.ts +16 -0
  149. package/lib/schemas/video.d.ts +83 -37
  150. package/lib/schemas/voucher.d.ts +2 -0
  151. package/lib/sdk.d.ts +6 -1
  152. package/lib/sdk.js +53 -6
  153. package/lib/sdk.js.map +1 -1
  154. package/lib/storage/custom-token-storage.js +2 -0
  155. package/lib/storage/custom-token-storage.js.map +1 -1
  156. package/lib/version.d.ts +1 -1
  157. package/lib/version.js +1 -1
  158. package/package.json +3 -3
@@ -0,0 +1,408 @@
1
+ import { jest } from "@jest/globals";
2
+ import { FollowPrizeManager } from "../../managers/follow-prize.manager.js";
3
+ import { ShopeeRegion } from "../../schemas/region.js";
4
+ import { ShopeeFetch } from "../../fetch.js";
5
+ import { FollowPrizeStatus, FollowPrizeRewardType, } from "../../schemas/follow-prize.js";
6
+ // Mock ShopeeFetch.fetch static method
7
+ const mockFetch = jest.fn();
8
+ ShopeeFetch.fetch = mockFetch;
9
+ describe("FollowPrizeManager", () => {
10
+ let followPrizeManager;
11
+ let mockConfig;
12
+ const mockShopeeFetch = mockFetch;
13
+ beforeEach(() => {
14
+ jest.clearAllMocks();
15
+ mockConfig = {
16
+ partner_id: 12345,
17
+ partner_key: "test_partner_key",
18
+ shop_id: 67890,
19
+ region: ShopeeRegion.GLOBAL,
20
+ base_url: "https://partner.test-stable.shopeemobile.com/api/v2",
21
+ };
22
+ followPrizeManager = new FollowPrizeManager(mockConfig);
23
+ });
24
+ describe("addFollowPrize", () => {
25
+ it("should add a new follow prize with fix amount discount", async () => {
26
+ const mockResponse = {
27
+ request_id: "70ef2c3c6e461cd4258f9962409634d5",
28
+ error: "",
29
+ message: "",
30
+ response: {
31
+ campagin_id: 2365452,
32
+ },
33
+ };
34
+ mockShopeeFetch.mockResolvedValue(mockResponse);
35
+ const result = await followPrizeManager.addFollowPrize({
36
+ follow_prize_name: "shop_follow_prize_one",
37
+ start_time: 1621844677,
38
+ end_time: 1621944677,
39
+ usage_quantity: 2000,
40
+ min_spend: 200,
41
+ reward_type: FollowPrizeRewardType.DISCOUNT_FIX_AMOUNT,
42
+ discount_amount: 50,
43
+ });
44
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/follow_prize/add_follow_prize", {
45
+ method: "POST",
46
+ auth: true,
47
+ body: {
48
+ follow_prize_name: "shop_follow_prize_one",
49
+ start_time: 1621844677,
50
+ end_time: 1621944677,
51
+ usage_quantity: 2000,
52
+ min_spend: 200,
53
+ reward_type: FollowPrizeRewardType.DISCOUNT_FIX_AMOUNT,
54
+ discount_amount: 50,
55
+ },
56
+ });
57
+ expect(result).toEqual(mockResponse);
58
+ expect(result.response.campagin_id).toBe(2365452);
59
+ });
60
+ it("should add a new follow prize with percentage discount", async () => {
61
+ const mockResponse = {
62
+ request_id: "70ef2c3c6e461cd4258f9962409634d5",
63
+ error: "",
64
+ message: "",
65
+ response: {
66
+ campagin_id: 2365453,
67
+ },
68
+ };
69
+ mockShopeeFetch.mockResolvedValue(mockResponse);
70
+ const result = await followPrizeManager.addFollowPrize({
71
+ follow_prize_name: "shop_follow_prize_two",
72
+ start_time: 1621844677,
73
+ end_time: 1621944677,
74
+ usage_quantity: 1000,
75
+ min_spend: 100,
76
+ reward_type: FollowPrizeRewardType.DISCOUNT_BY_PERCENTAGE,
77
+ percentage: 10,
78
+ max_price: 50,
79
+ });
80
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/follow_prize/add_follow_prize", {
81
+ method: "POST",
82
+ auth: true,
83
+ body: {
84
+ follow_prize_name: "shop_follow_prize_two",
85
+ start_time: 1621844677,
86
+ end_time: 1621944677,
87
+ usage_quantity: 1000,
88
+ min_spend: 100,
89
+ reward_type: FollowPrizeRewardType.DISCOUNT_BY_PERCENTAGE,
90
+ percentage: 10,
91
+ max_price: 50,
92
+ },
93
+ });
94
+ expect(result).toEqual(mockResponse);
95
+ });
96
+ it("should add a new follow prize with coin cash back", async () => {
97
+ const mockResponse = {
98
+ request_id: "70ef2c3c6e461cd4258f9962409634d5",
99
+ error: "",
100
+ message: "",
101
+ response: {
102
+ campagin_id: 2365454,
103
+ },
104
+ };
105
+ mockShopeeFetch.mockResolvedValue(mockResponse);
106
+ const result = await followPrizeManager.addFollowPrize({
107
+ follow_prize_name: "shop_follow_prize_three",
108
+ start_time: 1621844677,
109
+ end_time: 1621944677,
110
+ usage_quantity: 500,
111
+ min_spend: 150,
112
+ reward_type: FollowPrizeRewardType.COIN_CASH_BACK,
113
+ percentage: 5,
114
+ max_price: 20,
115
+ });
116
+ expect(result.response.campagin_id).toBe(2365454);
117
+ });
118
+ });
119
+ describe("deleteFollowPrize", () => {
120
+ it("should delete a follow prize", async () => {
121
+ const mockResponse = {
122
+ request_id: "513b227757f23c09d0b28c8c472f7478",
123
+ error: "",
124
+ message: "",
125
+ response: {
126
+ campagin_id: 24255,
127
+ },
128
+ };
129
+ mockShopeeFetch.mockResolvedValue(mockResponse);
130
+ const result = await followPrizeManager.deleteFollowPrize({
131
+ campaign_id: 24255,
132
+ });
133
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/follow_prize/delete_follow_prize", {
134
+ method: "POST",
135
+ auth: true,
136
+ body: {
137
+ campaign_id: 24255,
138
+ },
139
+ });
140
+ expect(result).toEqual(mockResponse);
141
+ expect(result.response.campagin_id).toBe(24255);
142
+ });
143
+ });
144
+ describe("endFollowPrize", () => {
145
+ it("should end a follow prize", async () => {
146
+ const mockResponse = {
147
+ request_id: "27c3b0bfd1a00cea8f0b24c33a474f5a",
148
+ error: "",
149
+ message: "",
150
+ response: {
151
+ campaign_id: 324343,
152
+ },
153
+ };
154
+ mockShopeeFetch.mockResolvedValue(mockResponse);
155
+ const result = await followPrizeManager.endFollowPrize({
156
+ campaign_id: 123344,
157
+ });
158
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/follow_prize/end_follow_prize", {
159
+ method: "POST",
160
+ auth: true,
161
+ body: {
162
+ campaign_id: 123344,
163
+ },
164
+ });
165
+ expect(result).toEqual(mockResponse);
166
+ expect(result.response.campaign_id).toBe(324343);
167
+ });
168
+ });
169
+ describe("getFollowPrizeDetail", () => {
170
+ it("should get follow prize detail with fix amount discount", async () => {
171
+ const mockResponse = {
172
+ request_id: "4f0cdb3819658dfb1809a7c39bb785d1",
173
+ error: "",
174
+ message: "",
175
+ response: {
176
+ campaign_status: "ongoing",
177
+ campaign_id: 1551,
178
+ usage_quantity: 100,
179
+ start_time: 1655891400,
180
+ end_time: 1656581220,
181
+ min_spend: 100,
182
+ reward_type: FollowPrizeRewardType.DISCOUNT_FIX_AMOUNT,
183
+ follow_prize_name: "follow prize01",
184
+ discount_amount: 50,
185
+ },
186
+ };
187
+ mockShopeeFetch.mockResolvedValue(mockResponse);
188
+ const result = await followPrizeManager.getFollowPrizeDetail({
189
+ campaign_id: 1551,
190
+ });
191
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/follow_prize/get_follow_prize_detail", {
192
+ method: "GET",
193
+ auth: true,
194
+ params: {
195
+ campaign_id: 1551,
196
+ },
197
+ });
198
+ expect(result).toEqual(mockResponse);
199
+ expect(result.response.campaign_id).toBe(1551);
200
+ expect(result.response.campaign_status).toBe("ongoing");
201
+ expect(result.response.reward_type).toBe(FollowPrizeRewardType.DISCOUNT_FIX_AMOUNT);
202
+ expect(result.response.discount_amount).toBe(50);
203
+ });
204
+ it("should get follow prize detail with coin cash back", async () => {
205
+ const mockResponse = {
206
+ request_id: "4f0cdb3819658dfb1809a7c39bb785d1",
207
+ error: "",
208
+ message: "",
209
+ response: {
210
+ campaign_status: "ongoing",
211
+ campaign_id: 1551,
212
+ usage_quantity: 100,
213
+ start_time: 1655891400,
214
+ end_time: 1656581220,
215
+ min_spend: 100,
216
+ reward_type: FollowPrizeRewardType.COIN_CASH_BACK,
217
+ follow_prize_name: "follow prize01",
218
+ percentage: 1,
219
+ max_price: 20,
220
+ },
221
+ };
222
+ mockShopeeFetch.mockResolvedValue(mockResponse);
223
+ const result = await followPrizeManager.getFollowPrizeDetail({
224
+ campaign_id: 1551,
225
+ });
226
+ expect(result.response.reward_type).toBe(FollowPrizeRewardType.COIN_CASH_BACK);
227
+ expect(result.response.percentage).toBe(1);
228
+ expect(result.response.max_price).toBe(20);
229
+ });
230
+ });
231
+ describe("getFollowPrizeList", () => {
232
+ it("should get list of upcoming follow prizes", async () => {
233
+ const mockResponse = {
234
+ request_id: "57a48cf80bec43c7891909bd9acaedb6",
235
+ error: "",
236
+ message: "",
237
+ response: {
238
+ more: false,
239
+ follow_prize_list: [
240
+ {
241
+ campaign_id: 27,
242
+ campaign_status: "upcoming",
243
+ follow_prize_name: "shop_follow_prize3",
244
+ start_time: 1655341211,
245
+ end_time: 1657760411,
246
+ usage_quantity: 2000,
247
+ claimed: 0,
248
+ },
249
+ ],
250
+ },
251
+ };
252
+ mockShopeeFetch.mockResolvedValue(mockResponse);
253
+ const result = await followPrizeManager.getFollowPrizeList({
254
+ status: FollowPrizeStatus.UPCOMING,
255
+ page_no: 1,
256
+ page_size: 100,
257
+ });
258
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/follow_prize/get_follow_prize_list", {
259
+ method: "GET",
260
+ auth: true,
261
+ params: {
262
+ status: FollowPrizeStatus.UPCOMING,
263
+ page_no: 1,
264
+ page_size: 100,
265
+ },
266
+ });
267
+ expect(result).toEqual(mockResponse);
268
+ expect(result.response.more).toBe(false);
269
+ expect(result.response.follow_prize_list).toHaveLength(1);
270
+ expect(result.response.follow_prize_list[0].campaign_status).toBe("upcoming");
271
+ expect(result.response.follow_prize_list[0].claimed).toBe(0);
272
+ });
273
+ it("should get list of all follow prizes with pagination", async () => {
274
+ const mockResponse = {
275
+ request_id: "57a48cf80bec43c7891909bd9acaedb6",
276
+ error: "",
277
+ message: "",
278
+ response: {
279
+ more: true,
280
+ follow_prize_list: [
281
+ {
282
+ campaign_id: 27,
283
+ campaign_status: "upcoming",
284
+ follow_prize_name: "shop_follow_prize3",
285
+ start_time: 1655341211,
286
+ end_time: 1657760411,
287
+ usage_quantity: 2000,
288
+ claimed: 0,
289
+ },
290
+ {
291
+ campaign_id: 28,
292
+ campaign_status: "ongoing",
293
+ follow_prize_name: "shop_follow_prize4",
294
+ start_time: 1655341211,
295
+ end_time: 1657760411,
296
+ usage_quantity: 1500,
297
+ claimed: 200,
298
+ },
299
+ {
300
+ campaign_id: 29,
301
+ campaign_status: "expired",
302
+ follow_prize_name: "shop_follow_prize5",
303
+ start_time: 1655341211,
304
+ end_time: 1657760411,
305
+ usage_quantity: 1000,
306
+ claimed: 950,
307
+ },
308
+ ],
309
+ },
310
+ };
311
+ mockShopeeFetch.mockResolvedValue(mockResponse);
312
+ const result = await followPrizeManager.getFollowPrizeList({
313
+ status: FollowPrizeStatus.ALL,
314
+ page_no: 1,
315
+ page_size: 20,
316
+ });
317
+ expect(result.response.more).toBe(true);
318
+ expect(result.response.follow_prize_list).toHaveLength(3);
319
+ expect(result.response.follow_prize_list[1].claimed).toBe(200);
320
+ });
321
+ it("should get list of ongoing follow prizes", async () => {
322
+ const mockResponse = {
323
+ request_id: "57a48cf80bec43c7891909bd9acaedb6",
324
+ error: "",
325
+ message: "",
326
+ response: {
327
+ more: false,
328
+ follow_prize_list: [
329
+ {
330
+ campaign_id: 28,
331
+ campaign_status: "ongoing",
332
+ follow_prize_name: "shop_follow_prize4",
333
+ start_time: 1655341211,
334
+ end_time: 1657760411,
335
+ usage_quantity: 1500,
336
+ claimed: 200,
337
+ },
338
+ ],
339
+ },
340
+ };
341
+ mockShopeeFetch.mockResolvedValue(mockResponse);
342
+ const result = await followPrizeManager.getFollowPrizeList({
343
+ status: FollowPrizeStatus.ONGOING,
344
+ });
345
+ expect(result.response.follow_prize_list[0].campaign_status).toBe("ongoing");
346
+ });
347
+ });
348
+ describe("updateFollowPrize", () => {
349
+ it("should update a follow prize", async () => {
350
+ const mockResponse = {
351
+ request_id: "bf3197ba056a884119dd8aea3d89dcb5",
352
+ error: "",
353
+ message: "",
354
+ response: {
355
+ campagin_id: 123344,
356
+ },
357
+ };
358
+ mockShopeeFetch.mockResolvedValue(mockResponse);
359
+ const result = await followPrizeManager.updateFollowPrize({
360
+ campaign_id: 3434334,
361
+ follow_prize_name: "shop_follow_prize_one",
362
+ start_time: 1621844677,
363
+ end_time: 1621944677,
364
+ usage_quantity: 2000,
365
+ min_spend: 200,
366
+ });
367
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/follow_prize/update_follow_prize", {
368
+ method: "POST",
369
+ auth: true,
370
+ body: {
371
+ campaign_id: 3434334,
372
+ follow_prize_name: "shop_follow_prize_one",
373
+ start_time: 1621844677,
374
+ end_time: 1621944677,
375
+ usage_quantity: 2000,
376
+ min_spend: 200,
377
+ },
378
+ });
379
+ expect(result).toEqual(mockResponse);
380
+ expect(result.response.campagin_id).toBe(123344);
381
+ });
382
+ it("should update only specific fields of a follow prize", async () => {
383
+ const mockResponse = {
384
+ request_id: "bf3197ba056a884119dd8aea3d89dcb5",
385
+ error: "",
386
+ message: "",
387
+ response: {
388
+ campagin_id: 123344,
389
+ },
390
+ };
391
+ mockShopeeFetch.mockResolvedValue(mockResponse);
392
+ const result = await followPrizeManager.updateFollowPrize({
393
+ campaign_id: 3434334,
394
+ usage_quantity: 3000,
395
+ });
396
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/follow_prize/update_follow_prize", {
397
+ method: "POST",
398
+ auth: true,
399
+ body: {
400
+ campaign_id: 3434334,
401
+ usage_quantity: 3000,
402
+ },
403
+ });
404
+ expect(result.response.campagin_id).toBe(123344);
405
+ });
406
+ });
407
+ });
408
+ //# sourceMappingURL=follow-prize.manager.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow-prize.manager.test.js","sourceRoot":"","sources":["../../../src/__tests__/managers/follow-prize.manager.test.ts"],"names":[],"mappings":"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"}