@congminh1254/shopee-sdk 1.6.2 → 1.7.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 (154) 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 +227 -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/returns.d.ts +38 -1
  145. package/lib/schemas/shop.d.ts +16 -0
  146. package/lib/schemas/video.d.ts +83 -37
  147. package/lib/schemas/voucher.d.ts +2 -0
  148. package/lib/sdk.js +31 -0
  149. package/lib/sdk.js.map +1 -1
  150. package/lib/storage/custom-token-storage.js +2 -0
  151. package/lib/storage/custom-token-storage.js.map +1 -1
  152. package/lib/version.d.ts +1 -1
  153. package/lib/version.js +1 -1
  154. package/package.json +3 -3
@@ -0,0 +1,629 @@
1
+ import { jest } from "@jest/globals";
2
+ import { FirstMileManager } from "../../managers/first-mile.manager.js";
3
+ import { ShopeeRegion } from "../../schemas/region.js";
4
+ import { ShopeeFetch } from "../../fetch.js";
5
+ // Mock ShopeeFetch.fetch static method
6
+ const mockFetch = jest.fn();
7
+ ShopeeFetch.fetch = mockFetch;
8
+ describe("FirstMileManager", () => {
9
+ let firstMileManager;
10
+ let mockConfig;
11
+ const mockShopeeFetch = mockFetch;
12
+ beforeEach(() => {
13
+ jest.clearAllMocks();
14
+ mockConfig = {
15
+ partner_id: 12345,
16
+ partner_key: "test_partner_key",
17
+ shop_id: 67890,
18
+ region: ShopeeRegion.GLOBAL,
19
+ base_url: "https://partner.test-stable.shopeemobile.com/api/v2",
20
+ };
21
+ firstMileManager = new FirstMileManager(mockConfig);
22
+ });
23
+ describe("getChannelList", () => {
24
+ it("should get first mile channel list", async () => {
25
+ const mockResponse = {
26
+ request_id: "test-request-id",
27
+ error: "",
28
+ message: "",
29
+ response: {
30
+ logistics_channel_list: [
31
+ {
32
+ logistics_channel_id: 1,
33
+ logistics_channel_name: "金岸物流",
34
+ shipment_method: "dropoff",
35
+ },
36
+ {
37
+ logistics_channel_id: 2,
38
+ logistics_channel_name: "海带宝",
39
+ shipment_method: "dropoff",
40
+ },
41
+ ],
42
+ },
43
+ };
44
+ mockShopeeFetch.mockResolvedValue(mockResponse);
45
+ const result = await firstMileManager.getChannelList();
46
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/get_channel_list", {
47
+ method: "GET",
48
+ auth: true,
49
+ params: undefined,
50
+ });
51
+ expect(result).toEqual(mockResponse);
52
+ expect(result.response?.logistics_channel_list).toHaveLength(2);
53
+ });
54
+ it("should get channel list with region filter", async () => {
55
+ const mockResponse = {
56
+ request_id: "test-request-id",
57
+ error: "",
58
+ message: "",
59
+ response: {
60
+ logistics_channel_list: [
61
+ {
62
+ logistics_channel_id: 1,
63
+ logistics_channel_name: "Test Channel",
64
+ shipment_method: "pickup",
65
+ },
66
+ ],
67
+ },
68
+ };
69
+ mockShopeeFetch.mockResolvedValue(mockResponse);
70
+ const result = await firstMileManager.getChannelList({ region: "CN" });
71
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/get_channel_list", {
72
+ method: "GET",
73
+ auth: true,
74
+ params: { region: "CN" },
75
+ });
76
+ expect(result).toEqual(mockResponse);
77
+ });
78
+ });
79
+ describe("generateFirstMileTrackingNumber", () => {
80
+ it("should generate first mile tracking number", async () => {
81
+ const mockResponse = {
82
+ request_id: "test-request-id",
83
+ error: "",
84
+ message: "",
85
+ response: {
86
+ first_mile_tracking_number_list: ["CNF731738838434210105"],
87
+ },
88
+ };
89
+ mockShopeeFetch.mockResolvedValue(mockResponse);
90
+ const result = await firstMileManager.generateFirstMileTrackingNumber({
91
+ declare_date: "2024-01-15",
92
+ quantity: 1,
93
+ });
94
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/generate_first_mile_tracking_number", {
95
+ method: "POST",
96
+ auth: true,
97
+ body: {
98
+ declare_date: "2024-01-15",
99
+ quantity: 1,
100
+ },
101
+ });
102
+ expect(result).toEqual(mockResponse);
103
+ expect(result.response?.first_mile_tracking_number_list).toHaveLength(1);
104
+ });
105
+ });
106
+ describe("getDetail", () => {
107
+ it("should get first mile detail", async () => {
108
+ const mockResponse = {
109
+ request_id: "test-request-id",
110
+ error: "",
111
+ message: "",
112
+ response: {
113
+ first_mile_tracking_number: "CNF731738838434210105",
114
+ shipment_method: "pickup",
115
+ logistics_channel_id: 813,
116
+ status: "PICKED_UP",
117
+ declare_date: "2020-05-19",
118
+ order_list: [
119
+ {
120
+ order_sn: "20012328KKGVR0",
121
+ package_number: "25333320394471234567",
122
+ sls_tracking_number: "TW211342705212345",
123
+ pick_up_done: false,
124
+ arrived_transit_warehouse: false,
125
+ },
126
+ ],
127
+ more: false,
128
+ next_cursor: "",
129
+ },
130
+ };
131
+ mockShopeeFetch.mockResolvedValue(mockResponse);
132
+ const result = await firstMileManager.getDetail({
133
+ first_mile_tracking_number: "CNF731738838434210105",
134
+ });
135
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/get_detail", {
136
+ method: "GET",
137
+ auth: true,
138
+ params: {
139
+ first_mile_tracking_number: "CNF731738838434210105",
140
+ },
141
+ });
142
+ expect(result).toEqual(mockResponse);
143
+ expect(result.response?.status).toBe("PICKED_UP");
144
+ });
145
+ it("should get detail with cursor for pagination", async () => {
146
+ const mockResponse = {
147
+ request_id: "test-request-id",
148
+ error: "",
149
+ message: "",
150
+ response: {
151
+ first_mile_tracking_number: "CNF731738838434210105",
152
+ shipment_method: "pickup",
153
+ logistics_channel_id: 813,
154
+ status: "PICKED_UP",
155
+ declare_date: "2020-05-19",
156
+ order_list: [],
157
+ more: false,
158
+ next_cursor: "100",
159
+ },
160
+ };
161
+ mockShopeeFetch.mockResolvedValue(mockResponse);
162
+ const result = await firstMileManager.getDetail({
163
+ first_mile_tracking_number: "CNF731738838434210105",
164
+ cursor: "50",
165
+ });
166
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/get_detail", {
167
+ method: "GET",
168
+ auth: true,
169
+ params: {
170
+ first_mile_tracking_number: "CNF731738838434210105",
171
+ cursor: "50",
172
+ },
173
+ });
174
+ expect(result).toEqual(mockResponse);
175
+ });
176
+ });
177
+ describe("bindFirstMileTrackingNumber", () => {
178
+ it("should bind first mile tracking number", async () => {
179
+ const mockResponse = {
180
+ request_id: "test-request-id",
181
+ error: "",
182
+ message: "",
183
+ response: {
184
+ order_list: [],
185
+ },
186
+ };
187
+ mockShopeeFetch.mockResolvedValue(mockResponse);
188
+ const result = await firstMileManager.bindFirstMileTrackingNumber({
189
+ first_mile_tracking_number: "CNF731738838434210105",
190
+ shipment_method: "pickup",
191
+ region: "CN",
192
+ logistics_channel_id: 813,
193
+ order_list: [
194
+ {
195
+ order_sn: "20012328KKGVR0",
196
+ package_number: "25333320394471234567",
197
+ },
198
+ ],
199
+ });
200
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/bind_first_mile_tracking_number", {
201
+ method: "POST",
202
+ auth: true,
203
+ body: {
204
+ first_mile_tracking_number: "CNF731738838434210105",
205
+ shipment_method: "pickup",
206
+ region: "CN",
207
+ logistics_channel_id: 813,
208
+ order_list: [
209
+ {
210
+ order_sn: "20012328KKGVR0",
211
+ package_number: "25333320394471234567",
212
+ },
213
+ ],
214
+ },
215
+ });
216
+ expect(result).toEqual(mockResponse);
217
+ expect(result.response?.order_list).toHaveLength(0);
218
+ });
219
+ });
220
+ describe("unbindFirstMileTrackingNumber", () => {
221
+ it("should unbind first mile tracking number", async () => {
222
+ const mockResponse = {
223
+ request_id: "test-request-id",
224
+ error: "",
225
+ message: "",
226
+ response: {
227
+ order_list: [],
228
+ },
229
+ };
230
+ mockShopeeFetch.mockResolvedValue(mockResponse);
231
+ const result = await firstMileManager.unbindFirstMileTrackingNumber({
232
+ first_mile_tracking_number: "CNF731738838434210105",
233
+ order_list: [
234
+ {
235
+ order_sn: "20012328KKGVR0",
236
+ package_number: "25333320394471234567",
237
+ },
238
+ ],
239
+ });
240
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/unbind_first_mile_tracking_number", {
241
+ method: "POST",
242
+ auth: true,
243
+ body: {
244
+ first_mile_tracking_number: "CNF731738838434210105",
245
+ order_list: [
246
+ {
247
+ order_sn: "20012328KKGVR0",
248
+ package_number: "25333320394471234567",
249
+ },
250
+ ],
251
+ },
252
+ });
253
+ expect(result).toEqual(mockResponse);
254
+ });
255
+ });
256
+ describe("getTrackingNumberList", () => {
257
+ it("should get tracking number list", async () => {
258
+ const mockResponse = {
259
+ request_id: "test-request-id",
260
+ error: "",
261
+ message: "",
262
+ response: {
263
+ first_mile_tracking_number_list: [
264
+ {
265
+ first_mile_tracking_number: "CNF731738838434210105",
266
+ declare_date: "2020-05-19",
267
+ },
268
+ ],
269
+ more: false,
270
+ next_cursor: "",
271
+ },
272
+ };
273
+ mockShopeeFetch.mockResolvedValue(mockResponse);
274
+ const result = await firstMileManager.getTrackingNumberList({
275
+ from_date: "2024-01-01",
276
+ to_date: "2024-01-31",
277
+ page_size: 20,
278
+ });
279
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/get_tracking_number_list", {
280
+ method: "GET",
281
+ auth: true,
282
+ params: {
283
+ from_date: "2024-01-01",
284
+ to_date: "2024-01-31",
285
+ page_size: 20,
286
+ },
287
+ });
288
+ expect(result).toEqual(mockResponse);
289
+ expect(result.response?.first_mile_tracking_number_list).toHaveLength(1);
290
+ });
291
+ });
292
+ describe("getUnbindOrderList", () => {
293
+ it("should get unbind order list", async () => {
294
+ const mockResponse = {
295
+ request_id: "test-request-id",
296
+ error: "",
297
+ message: "",
298
+ response: {
299
+ order_list: [
300
+ {
301
+ order_sn: "20012328KKGVR0",
302
+ package_number: "25333320394471234567",
303
+ },
304
+ ],
305
+ more: false,
306
+ next_cursor: "",
307
+ },
308
+ };
309
+ mockShopeeFetch.mockResolvedValue(mockResponse);
310
+ const result = await firstMileManager.getUnbindOrderList({
311
+ page_size: 20,
312
+ });
313
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/get_unbind_order_list", {
314
+ method: "GET",
315
+ auth: true,
316
+ params: {
317
+ page_size: 20,
318
+ },
319
+ });
320
+ expect(result).toEqual(mockResponse);
321
+ expect(result.response?.order_list).toHaveLength(1);
322
+ });
323
+ });
324
+ describe("getWaybill", () => {
325
+ it("should get waybill", async () => {
326
+ const mockResponse = {
327
+ request_id: "test-request-id",
328
+ error: "",
329
+ message: "",
330
+ response: {
331
+ waybill_list: [
332
+ {
333
+ first_mile_tracking_number: "CNF731738838434210105",
334
+ waybill: "base64_encoded_pdf_content",
335
+ },
336
+ ],
337
+ },
338
+ };
339
+ mockShopeeFetch.mockResolvedValue(mockResponse);
340
+ const result = await firstMileManager.getWaybill({
341
+ first_mile_tracking_number_list: ["CNF731738838434210105"],
342
+ });
343
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/get_waybill", {
344
+ method: "POST",
345
+ auth: true,
346
+ body: {
347
+ first_mile_tracking_number_list: ["CNF731738838434210105"],
348
+ },
349
+ });
350
+ expect(result).toEqual(mockResponse);
351
+ expect(result.response?.waybill_list).toHaveLength(1);
352
+ });
353
+ });
354
+ describe("getCourierDeliveryChannelList", () => {
355
+ it("should get courier delivery channel list", async () => {
356
+ const mockResponse = {
357
+ request_id: "test-request-id",
358
+ error: "",
359
+ message: "",
360
+ response: {
361
+ logistics_channel_list: [],
362
+ },
363
+ };
364
+ mockShopeeFetch.mockResolvedValue(mockResponse);
365
+ const result = await firstMileManager.getCourierDeliveryChannelList({
366
+ region: "CN",
367
+ });
368
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/get_courier_delivery_channel_list", {
369
+ method: "GET",
370
+ auth: true,
371
+ params: {
372
+ region: "CN",
373
+ },
374
+ });
375
+ expect(result).toEqual(mockResponse);
376
+ });
377
+ });
378
+ describe("getTransitWarehouseList", () => {
379
+ it("should get transit warehouse list", async () => {
380
+ const mockResponse = {
381
+ request_id: "test-request-id",
382
+ error: "",
383
+ message: "",
384
+ response: {
385
+ transit_warehouse_list: [
386
+ {
387
+ warehouse_id: "WH001",
388
+ warehouse_name_en: "Test Warehouse",
389
+ },
390
+ ],
391
+ },
392
+ };
393
+ mockShopeeFetch.mockResolvedValue(mockResponse);
394
+ const result = await firstMileManager.getTransitWarehouseList();
395
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/get_transit_warehouse_list", {
396
+ method: "GET",
397
+ auth: true,
398
+ params: undefined,
399
+ });
400
+ expect(result).toEqual(mockResponse);
401
+ });
402
+ });
403
+ describe("generateAndBindFirstMileTrackingNumber", () => {
404
+ it("should generate and bind first mile tracking number", async () => {
405
+ const mockResponse = {
406
+ request_id: "test-request-id",
407
+ error: "",
408
+ message: "",
409
+ response: {
410
+ binding_id: "BINDING123456",
411
+ fail_list: [],
412
+ },
413
+ };
414
+ mockShopeeFetch.mockResolvedValue(mockResponse);
415
+ const result = await firstMileManager.generateAndBindFirstMileTrackingNumber({
416
+ shipment_method: "courier_delivery",
417
+ region: "CN",
418
+ order_list: [
419
+ {
420
+ order_sn: "20012328KKGVR0",
421
+ package_number: "25333320394471234567",
422
+ },
423
+ ],
424
+ courier_delivery_info: {
425
+ address_id: 12345,
426
+ warehouse_id: "WH001",
427
+ logistics_product_id: 1010003,
428
+ courier_service_id: "1",
429
+ },
430
+ });
431
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/generate_and_bind_first_mile_tracking_number", {
432
+ method: "POST",
433
+ auth: true,
434
+ body: {
435
+ shipment_method: "courier_delivery",
436
+ region: "CN",
437
+ order_list: [
438
+ {
439
+ order_sn: "20012328KKGVR0",
440
+ package_number: "25333320394471234567",
441
+ },
442
+ ],
443
+ courier_delivery_info: {
444
+ address_id: 12345,
445
+ warehouse_id: "WH001",
446
+ logistics_product_id: 1010003,
447
+ courier_service_id: "1",
448
+ },
449
+ },
450
+ });
451
+ expect(result).toEqual(mockResponse);
452
+ expect(result.response?.binding_id).toBe("BINDING123456");
453
+ });
454
+ });
455
+ describe("bindCourierDeliveryFirstMileTrackingNumber", () => {
456
+ it("should bind courier delivery first mile tracking number", async () => {
457
+ const mockResponse = {
458
+ request_id: "test-request-id",
459
+ error: "",
460
+ message: "",
461
+ response: {
462
+ fail_list: [],
463
+ },
464
+ };
465
+ mockShopeeFetch.mockResolvedValue(mockResponse);
466
+ const result = await firstMileManager.bindCourierDeliveryFirstMileTrackingNumber({
467
+ shipment_method: "courier_delivery",
468
+ binding_id: "BINDING123456",
469
+ order_list: [
470
+ {
471
+ order_sn: "20012328KKGVR0",
472
+ package_number: "25333320394471234567",
473
+ },
474
+ ],
475
+ });
476
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/bind_courier_delivery_first_mile_tracking_number", {
477
+ method: "POST",
478
+ auth: true,
479
+ body: {
480
+ shipment_method: "courier_delivery",
481
+ binding_id: "BINDING123456",
482
+ order_list: [
483
+ {
484
+ order_sn: "20012328KKGVR0",
485
+ package_number: "25333320394471234567",
486
+ },
487
+ ],
488
+ },
489
+ });
490
+ expect(result).toEqual(mockResponse);
491
+ });
492
+ });
493
+ describe("getCourierDeliveryDetail", () => {
494
+ it("should get courier delivery detail", async () => {
495
+ const mockResponse = {
496
+ request_id: "test-request-id",
497
+ error: "",
498
+ message: "",
499
+ response: {
500
+ binding_id: "BINDING123456",
501
+ status: "PICKED_UP",
502
+ declare_date: "2024-01-15",
503
+ order_list: [
504
+ {
505
+ order_sn: "20012328KKGVR0",
506
+ package_number: "25333320394471234567",
507
+ sls_tracking_number: "TW211342705212345",
508
+ pick_up_done: false,
509
+ arrived_transit_warehouse: false,
510
+ },
511
+ ],
512
+ more: false,
513
+ next_cursor: "",
514
+ },
515
+ };
516
+ mockShopeeFetch.mockResolvedValue(mockResponse);
517
+ const result = await firstMileManager.getCourierDeliveryDetail({
518
+ binding_id: "BINDING123456",
519
+ });
520
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/get_courier_delivery_detail", {
521
+ method: "GET",
522
+ auth: true,
523
+ params: {
524
+ binding_id: "BINDING123456",
525
+ },
526
+ });
527
+ expect(result).toEqual(mockResponse);
528
+ });
529
+ });
530
+ describe("getCourierDeliveryTrackingNumberList", () => {
531
+ it("should get courier delivery tracking number list", async () => {
532
+ const mockResponse = {
533
+ request_id: "test-request-id",
534
+ error: "",
535
+ message: "",
536
+ response: {
537
+ tracking_number_list: [
538
+ {
539
+ binding_id: "BINDING123456",
540
+ declare_date: "2024-01-15",
541
+ },
542
+ ],
543
+ more: false,
544
+ next_cursor: "",
545
+ },
546
+ };
547
+ mockShopeeFetch.mockResolvedValue(mockResponse);
548
+ const result = await firstMileManager.getCourierDeliveryTrackingNumberList({
549
+ from_date: "2024-01-01",
550
+ to_date: "2024-01-31",
551
+ page_size: 20,
552
+ });
553
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/get_courier_delivery_tracking_number_list", {
554
+ method: "POST",
555
+ auth: true,
556
+ body: {
557
+ from_date: "2024-01-01",
558
+ to_date: "2024-01-31",
559
+ page_size: 20,
560
+ },
561
+ });
562
+ expect(result).toEqual(mockResponse);
563
+ });
564
+ });
565
+ describe("getCourierDeliveryWaybill", () => {
566
+ it("should get courier delivery waybill", async () => {
567
+ const mockResponse = {
568
+ request_id: "test-request-id",
569
+ error: "",
570
+ message: "",
571
+ response: {
572
+ waybill_list: [
573
+ {
574
+ binding_id: "BINDING123456",
575
+ shipping_label_url: "base64_encoded_pdf_content",
576
+ },
577
+ ],
578
+ },
579
+ };
580
+ mockShopeeFetch.mockResolvedValue(mockResponse);
581
+ const result = await firstMileManager.getCourierDeliveryWaybill({
582
+ binding_id_list: ["BINDING123456"],
583
+ });
584
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/get_courier_delivery_waybill", {
585
+ method: "POST",
586
+ auth: true,
587
+ body: {
588
+ binding_id_list: ["BINDING123456"],
589
+ },
590
+ });
591
+ expect(result).toEqual(mockResponse);
592
+ });
593
+ });
594
+ describe("unbindFirstMileTrackingNumberAll", () => {
595
+ it("should unbind all first mile tracking numbers", async () => {
596
+ const mockResponse = {
597
+ request_id: "test-request-id",
598
+ error: "",
599
+ message: "",
600
+ response: {
601
+ fail_list: [],
602
+ },
603
+ };
604
+ mockShopeeFetch.mockResolvedValue(mockResponse);
605
+ const result = await firstMileManager.unbindFirstMileTrackingNumberAll({
606
+ order_list: [
607
+ {
608
+ order_sn: "20012328KKGVR0",
609
+ package_number: "25333320394471234567",
610
+ },
611
+ ],
612
+ });
613
+ expect(mockShopeeFetch).toHaveBeenCalledWith(mockConfig, "/first_mile/unbind_first_mile_tracking_number_all", {
614
+ method: "POST",
615
+ auth: true,
616
+ body: {
617
+ order_list: [
618
+ {
619
+ order_sn: "20012328KKGVR0",
620
+ package_number: "25333320394471234567",
621
+ },
622
+ ],
623
+ },
624
+ });
625
+ expect(result).toEqual(mockResponse);
626
+ });
627
+ });
628
+ });
629
+ //# sourceMappingURL=first-mile.manager.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-mile.manager.test.js","sourceRoot":"","sources":["../../../src/__tests__/managers/first-mile.manager.test.ts"],"names":[],"mappings":"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"}