@dxtmisha/functional-basic 0.1.1 → 0.1.4

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 (125) hide show
  1. package/dist/functions/copyObjectLite.d.ts +9 -0
  2. package/dist/library.d.ts +1 -0
  3. package/dist/library.js +405 -411
  4. package/package.json +1 -3
  5. package/src/classes/Api.ts +0 -407
  6. package/src/classes/ApiDefault.ts +0 -83
  7. package/src/classes/ApiHeaders.ts +0 -52
  8. package/src/classes/ApiPreparation.ts +0 -114
  9. package/src/classes/ApiResponse.ts +0 -293
  10. package/src/classes/ApiStatus.ts +0 -173
  11. package/src/classes/BroadcastMessage.ts +0 -73
  12. package/src/classes/Cache.ts +0 -60
  13. package/src/classes/CacheItem.ts +0 -95
  14. package/src/classes/CacheStatic.ts +0 -30
  15. package/src/classes/Cookie.ts +0 -135
  16. package/src/classes/CookieBlock.ts +0 -31
  17. package/src/classes/DataStorage.ts +0 -194
  18. package/src/classes/Datetime.ts +0 -891
  19. package/src/classes/EventItem.ts +0 -373
  20. package/src/classes/Geo.ts +0 -320
  21. package/src/classes/GeoFlag.ts +0 -386
  22. package/src/classes/GeoIntl.ts +0 -839
  23. package/src/classes/GeoPhone.ts +0 -272
  24. package/src/classes/Global.ts +0 -32
  25. package/src/classes/Hash.ts +0 -142
  26. package/src/classes/Icons.ts +0 -165
  27. package/src/classes/Loading.ts +0 -90
  28. package/src/classes/Meta.ts +0 -284
  29. package/src/classes/MetaManager.ts +0 -200
  30. package/src/classes/MetaOg.ts +0 -147
  31. package/src/classes/MetaTwitter.ts +0 -154
  32. package/src/classes/ScrollbarWidth.ts +0 -86
  33. package/src/classes/Translate.ts +0 -293
  34. package/src/classes/__tests__/Api.test.ts +0 -728
  35. package/src/classes/__tests__/ApiDefault.test.ts +0 -222
  36. package/src/classes/__tests__/ApiHeaders.test.ts +0 -447
  37. package/src/classes/__tests__/ApiPreparation.test.ts +0 -257
  38. package/src/classes/__tests__/ApiResponse.test.ts +0 -547
  39. package/src/classes/__tests__/ApiStatus.test.ts +0 -403
  40. package/src/classes/__tests__/Meta.test.ts +0 -629
  41. package/src/classes/__tests__/MetaManager.test.ts +0 -836
  42. package/src/classes/__tests__/MetaOg.test.ts +0 -677
  43. package/src/classes/__tests__/MetaTwitter.test.ts +0 -423
  44. package/src/functions/anyToString.ts +0 -36
  45. package/src/functions/applyTemplate.ts +0 -63
  46. package/src/functions/arrFill.ts +0 -10
  47. package/src/functions/copyObject.ts +0 -10
  48. package/src/functions/createElement.ts +0 -40
  49. package/src/functions/domQuerySelector.ts +0 -15
  50. package/src/functions/domQuerySelectorAll.ts +0 -15
  51. package/src/functions/encodeAttribute.ts +0 -15
  52. package/src/functions/eventStopPropagation.ts +0 -10
  53. package/src/functions/executeFunction.ts +0 -13
  54. package/src/functions/executePromise.ts +0 -19
  55. package/src/functions/forEach.ts +0 -39
  56. package/src/functions/frame.ts +0 -38
  57. package/src/functions/getAttributes.ts +0 -27
  58. package/src/functions/getClipboardData.ts +0 -13
  59. package/src/functions/getColumn.ts +0 -18
  60. package/src/functions/getElement.ts +0 -35
  61. package/src/functions/getElementId.ts +0 -39
  62. package/src/functions/getElementItem.ts +0 -27
  63. package/src/functions/getElementOrWindow.ts +0 -23
  64. package/src/functions/getExp.ts +0 -21
  65. package/src/functions/getItemByPath.ts +0 -24
  66. package/src/functions/getKey.ts +0 -9
  67. package/src/functions/getLengthOfAllArray.ts +0 -13
  68. package/src/functions/getMaxLengthAllArray.ts +0 -13
  69. package/src/functions/getMinLengthAllArray.ts +0 -13
  70. package/src/functions/getMouseClient.ts +0 -17
  71. package/src/functions/getMouseClientX.ts +0 -9
  72. package/src/functions/getMouseClientY.ts +0 -9
  73. package/src/functions/getObjectByKeys.ts +0 -24
  74. package/src/functions/getObjectNoUndefined.ts +0 -23
  75. package/src/functions/getObjectOrNone.ts +0 -11
  76. package/src/functions/getRandomText.ts +0 -29
  77. package/src/functions/getRequestString.ts +0 -21
  78. package/src/functions/getStepPercent.ts +0 -19
  79. package/src/functions/getStepValue.ts +0 -19
  80. package/src/functions/goScroll.ts +0 -40
  81. package/src/functions/inArray.ts +0 -10
  82. package/src/functions/initScrollbarOffset.ts +0 -14
  83. package/src/functions/intersectKey.ts +0 -34
  84. package/src/functions/isArray.ts +0 -9
  85. package/src/functions/isDifferent.ts +0 -27
  86. package/src/functions/isDomRuntime.ts +0 -12
  87. package/src/functions/isFilled.ts +0 -49
  88. package/src/functions/isFloat.ts +0 -16
  89. package/src/functions/isFunction.ts +0 -11
  90. package/src/functions/isInDom.ts +0 -15
  91. package/src/functions/isIntegerBetween.ts +0 -11
  92. package/src/functions/isNull.ts +0 -11
  93. package/src/functions/isNumber.ts +0 -16
  94. package/src/functions/isObject.ts +0 -9
  95. package/src/functions/isObjectNotArray.ts +0 -11
  96. package/src/functions/isSelected.ts +0 -32
  97. package/src/functions/isSelectedByList.ts +0 -19
  98. package/src/functions/isString.ts +0 -9
  99. package/src/functions/isWindow.ts +0 -11
  100. package/src/functions/random.ts +0 -10
  101. package/src/functions/replaceRecursive.ts +0 -60
  102. package/src/functions/replaceTemplate.ts +0 -22
  103. package/src/functions/secondToTime.ts +0 -20
  104. package/src/functions/setElementItem.ts +0 -56
  105. package/src/functions/setValues.ts +0 -59
  106. package/src/functions/splice.ts +0 -59
  107. package/src/functions/strFill.ts +0 -12
  108. package/src/functions/toArray.ts +0 -19
  109. package/src/functions/toCamelCase.ts +0 -16
  110. package/src/functions/toCamelCaseFirst.ts +0 -12
  111. package/src/functions/toDate.ts +0 -44
  112. package/src/functions/toKebabCase.ts +0 -25
  113. package/src/functions/toNumber.ts +0 -35
  114. package/src/functions/toNumberByMax.ts +0 -33
  115. package/src/functions/toPercent.ts +0 -10
  116. package/src/functions/toPercentBy100.ts +0 -12
  117. package/src/functions/transformation.ts +0 -59
  118. package/src/functions/uniqueArray.ts +0 -9
  119. package/src/functions/writeClipboardData.ts +0 -17
  120. package/src/library.ts +0 -116
  121. package/src/types/apiTypes.ts +0 -143
  122. package/src/types/basicTypes.ts +0 -155
  123. package/src/types/geoTypes.ts +0 -109
  124. package/src/types/metaTypes.ts +0 -764
  125. package/src/vite-env.d.ts +0 -1
@@ -1,547 +0,0 @@
1
- /**
2
- * @vitest-environment jsdom
3
- */
4
-
5
- import { describe, it, expect, beforeEach } from 'vitest'
6
- import { ApiResponse } from '../ApiResponse'
7
- import { ApiDefault } from '../ApiDefault'
8
- import { ApiMethodItem } from '../../types/apiTypes'
9
- import type { ApiResponseItem } from '../../types/apiTypes'
10
-
11
- describe('ApiResponse', () => {
12
- let apiResponse: ApiResponse
13
- let apiDefault: ApiDefault
14
-
15
- beforeEach(() => {
16
- apiDefault = new ApiDefault()
17
- apiResponse = new ApiResponse(apiDefault)
18
- })
19
-
20
- describe('constructor', () => {
21
- it('should create ApiResponse instance', () => {
22
- expect(apiResponse).toBeInstanceOf(ApiResponse)
23
- })
24
-
25
- it('should initialize with empty response list', () => {
26
- expect(apiResponse.getList()).toEqual([])
27
- })
28
- })
29
-
30
- describe('add', () => {
31
- it('should add single response item', () => {
32
- const responseItem: ApiResponseItem = {
33
- path: '/api/test',
34
- method: ApiMethodItem.get,
35
- response: { data: 'test' }
36
- }
37
-
38
- apiResponse.add(responseItem)
39
- expect(apiResponse.getList()).toHaveLength(1)
40
- expect(apiResponse.getList()?.[0]).toEqual(responseItem)
41
- })
42
-
43
- it('should add multiple response items', () => {
44
- const items: ApiResponseItem[] = [
45
- {
46
- path: '/api/test1',
47
- method: ApiMethodItem.get,
48
- response: { data: 'test1' }
49
- },
50
- {
51
- path: '/api/test2',
52
- method: ApiMethodItem.post,
53
- response: { data: 'test2' }
54
- }
55
- ]
56
-
57
- apiResponse.add(items)
58
- expect(apiResponse.getList()).toHaveLength(2)
59
- })
60
-
61
- it('should return this for chaining', () => {
62
- const responseItem: ApiResponseItem = {
63
- path: '/api/test',
64
- method: ApiMethodItem.get,
65
- response: {}
66
- }
67
-
68
- const result = apiResponse.add(responseItem)
69
- expect(result).toBe(apiResponse)
70
- })
71
-
72
- it('should chain multiple add calls', () => {
73
- const item1: ApiResponseItem = {
74
- path: '/api/test1',
75
- method: ApiMethodItem.get,
76
- response: {}
77
- }
78
- const item2: ApiResponseItem = {
79
- path: '/api/test2',
80
- method: ApiMethodItem.post,
81
- response: {}
82
- }
83
-
84
- apiResponse.add(item1).add(item2)
85
- expect(apiResponse.getList()).toHaveLength(2)
86
- })
87
- })
88
-
89
- describe('getList', () => {
90
- it('should return empty array when no responses added', () => {
91
- expect(apiResponse.getList()).toEqual([])
92
- })
93
-
94
- it('should return all non-global responses', () => {
95
- const items: ApiResponseItem[] = [
96
- {
97
- path: '/api/test1',
98
- method: ApiMethodItem.get,
99
- response: {}
100
- },
101
- {
102
- path: '/api/test2',
103
- method: ApiMethodItem.get,
104
- response: {},
105
- isForGlobal: false
106
- }
107
- ]
108
-
109
- apiResponse.add(items)
110
- expect(apiResponse.getList()).toHaveLength(2)
111
- })
112
-
113
- it('should filter out global responses', () => {
114
- const items: ApiResponseItem[] = [
115
- {
116
- path: '/api/test1',
117
- method: ApiMethodItem.get,
118
- response: {}
119
- },
120
- {
121
- path: '/api/global',
122
- method: ApiMethodItem.get,
123
- response: {},
124
- isForGlobal: true
125
- }
126
- ]
127
-
128
- apiResponse.add(items)
129
- expect(apiResponse.getList()).toHaveLength(1)
130
- expect(apiResponse.getList()?.[0]?.path).toBe('/api/test1')
131
- })
132
- })
133
-
134
- describe('setDevMode', () => {
135
- it('should set developer mode', () => {
136
- apiResponse.setDevMode(true)
137
- // Проверка через эмулятор (косвенная проверка)
138
- expect(apiResponse).toBeInstanceOf(ApiResponse)
139
- })
140
-
141
- it('should return this for chaining', () => {
142
- const result = apiResponse.setDevMode(true)
143
- expect(result).toBe(apiResponse)
144
- })
145
- })
146
-
147
- describe('get', () => {
148
- it('should return undefined when no matching response', () => {
149
- const result = apiResponse.get('/api/test', ApiMethodItem.get)
150
- expect(result).toBeUndefined()
151
- })
152
-
153
- it('should return matching response by path and method', () => {
154
- const responseItem: ApiResponseItem = {
155
- path: '/api/test',
156
- method: ApiMethodItem.get,
157
- request: undefined,
158
- response: { data: 'test' }
159
- }
160
-
161
- apiResponse.add(responseItem)
162
- const result = apiResponse.get('/api/test', ApiMethodItem.get, undefined)
163
- expect(result).toEqual(responseItem)
164
- })
165
-
166
- it('should match path with RegExp', () => {
167
- const responseItem: ApiResponseItem = {
168
- path: /^\/api\/test\/\d+$/,
169
- method: ApiMethodItem.get,
170
- response: { data: 'test' }
171
- }
172
-
173
- apiResponse.add(responseItem)
174
- const result = apiResponse.get('/api/test/123', ApiMethodItem.get)
175
- expect(result).toEqual(responseItem)
176
- })
177
-
178
- it('should not return same response twice (first request tracking)', () => {
179
- const responseItem: ApiResponseItem = {
180
- path: '/api/test',
181
- method: ApiMethodItem.get,
182
- response: { data: 'test' }
183
- }
184
-
185
- apiResponse.add(responseItem)
186
- const firstCall = apiResponse.get('/api/test', ApiMethodItem.get)
187
- const secondCall = apiResponse.get('/api/test', ApiMethodItem.get)
188
-
189
- expect(firstCall).toEqual(responseItem)
190
- expect(secondCall).toBeUndefined()
191
- })
192
-
193
- it('should return response again in devMode', () => {
194
- const responseItem: ApiResponseItem = {
195
- path: '/api/test',
196
- method: ApiMethodItem.get,
197
- response: { data: 'test' }
198
- }
199
-
200
- apiResponse.add(responseItem)
201
- apiResponse.get('/api/test', ApiMethodItem.get, undefined, false)
202
- const result = apiResponse.get('/api/test', ApiMethodItem.get, undefined, true)
203
-
204
- expect(result).toEqual(responseItem)
205
- })
206
-
207
- it('should not return disabled responses', () => {
208
- const disabledItem: ApiResponseItem = {
209
- path: '/api/disabled',
210
- method: ApiMethodItem.get,
211
- response: { data: 'disabled' },
212
- disable: true
213
- }
214
-
215
- const enabledItem: ApiResponseItem = {
216
- path: '/api/enabled',
217
- method: ApiMethodItem.get,
218
- response: { data: 'enabled' }
219
- // disable не указан (undefined) - элемент активен
220
- }
221
-
222
- apiResponse.add([disabledItem, enabledItem])
223
-
224
- // Отключенный не вернётся
225
- expect(apiResponse.get('/api/disabled', ApiMethodItem.get)).toBeUndefined()
226
-
227
- // Включенный вернётся
228
- expect(apiResponse.get('/api/enabled', ApiMethodItem.get)).toEqual(enabledItem)
229
- })
230
-
231
- it('should match request with *any marker', () => {
232
- const responseItem: ApiResponseItem = {
233
- path: '/api/test',
234
- method: ApiMethodItem.post,
235
- request: '*any',
236
- response: { data: 'test' }
237
- }
238
-
239
- apiResponse.add(responseItem)
240
- const result = apiResponse.get('/api/test', ApiMethodItem.post, { foo: 'bar' })
241
- expect(result).toEqual(responseItem)
242
- })
243
-
244
- it('should match request with exact object', () => {
245
- const responseItem: ApiResponseItem = {
246
- path: '/api/test',
247
- method: ApiMethodItem.post,
248
- request: { key: 'value' },
249
- response: { data: 'test' }
250
- }
251
-
252
- apiResponse.add(responseItem)
253
- const result = apiResponse.get('/api/test', ApiMethodItem.post, { key: 'value' })
254
- expect(result).toEqual(responseItem)
255
- })
256
-
257
- it('should not match request with different object', () => {
258
- const responseItem: ApiResponseItem = {
259
- path: '/api/test',
260
- method: ApiMethodItem.post,
261
- request: { key: 'value1' },
262
- response: { data: 'test' }
263
- }
264
-
265
- apiResponse.add(responseItem)
266
- const result = apiResponse.get('/api/test', ApiMethodItem.post, { key: 'value2' })
267
- expect(result).toBeUndefined()
268
- })
269
-
270
- it('should match with partial *any in request object', () => {
271
- const responseItem: ApiResponseItem = {
272
- path: '/api/test',
273
- method: ApiMethodItem.post,
274
- request: { key1: 'value1', key2: '*any' },
275
- response: { data: 'test' }
276
- }
277
-
278
- apiResponse.add(responseItem)
279
- const result = apiResponse.get('/api/test', ApiMethodItem.post, { key1: 'value1', key2: 'any-value' })
280
- expect(result).toEqual(responseItem)
281
- })
282
- })
283
-
284
- describe('emulator', () => {
285
- it('should return undefined when no matching response', async () => {
286
- const result = await apiResponse.emulator({
287
- path: '/api/test',
288
- method: ApiMethodItem.get
289
- })
290
-
291
- expect(result).toBeUndefined()
292
- })
293
-
294
- it('should return emulated response for GET request', async () => {
295
- const responseItem: ApiResponseItem = {
296
- path: '/api/test',
297
- method: ApiMethodItem.get,
298
- response: { data: 'test' }
299
- }
300
-
301
- apiResponse.add(responseItem)
302
- const result = await apiResponse.emulator({
303
- path: '/api/test',
304
- method: ApiMethodItem.get
305
- })
306
-
307
- expect(result).toEqual({ data: 'test' })
308
- })
309
-
310
- it('should work with response as function', async () => {
311
- const responseItem: ApiResponseItem = {
312
- path: '/api/test',
313
- method: ApiMethodItem.get,
314
- request: '*any',
315
- response: (request: any) => ({ echo: request })
316
- }
317
-
318
- apiResponse.add(responseItem)
319
- const result = await apiResponse.emulator({
320
- path: '/api/test',
321
- method: ApiMethodItem.get,
322
- request: { input: 'value' }
323
- })
324
-
325
- expect(result).toEqual({ echo: { input: 'value' } })
326
- })
327
-
328
- it('should work with async response function', async () => {
329
- const responseItem: ApiResponseItem = {
330
- path: '/api/test',
331
- method: ApiMethodItem.get,
332
- response: async () => {
333
- return new Promise((resolve) => {
334
- setTimeout(() => resolve({ delayed: true }), 10)
335
- })
336
- }
337
- }
338
-
339
- apiResponse.add(responseItem)
340
- const result = await apiResponse.emulator({
341
- path: '/api/test',
342
- method: ApiMethodItem.get
343
- })
344
-
345
- expect(result).toEqual({ delayed: true })
346
- })
347
-
348
- it('should not use emulator for non-GET without global flag', async () => {
349
- const responseItem: ApiResponseItem = {
350
- path: '/api/test',
351
- method: ApiMethodItem.post,
352
- response: { data: 'test' }
353
- }
354
-
355
- apiResponse.add(responseItem)
356
- const result = await apiResponse.emulator({
357
- path: '/api/test',
358
- method: ApiMethodItem.post,
359
- global: false
360
- })
361
-
362
- expect(result).toBeUndefined()
363
- })
364
-
365
- it('should use emulator for non-GET with global flag', async () => {
366
- const responseItem: ApiResponseItem = {
367
- path: '/api/test',
368
- method: ApiMethodItem.post,
369
- response: { data: 'test' }
370
- }
371
-
372
- apiResponse.add(responseItem)
373
- const result = await apiResponse.emulator({
374
- path: '/api/test',
375
- method: ApiMethodItem.post,
376
- global: true
377
- })
378
-
379
- expect(result).toEqual({ data: 'test' })
380
- })
381
-
382
- it('should use emulator when devMode is enabled', async () => {
383
- const responseItem: ApiResponseItem = {
384
- path: '/api/test',
385
- method: ApiMethodItem.post,
386
- response: { data: 'test' }
387
- }
388
-
389
- apiResponse.add(responseItem)
390
- const result = await apiResponse.emulator({
391
- path: '/api/test',
392
- method: ApiMethodItem.post,
393
- devMode: true
394
- })
395
-
396
- expect(result).toEqual({ data: 'test' })
397
- })
398
-
399
- it('should merge default request data', async () => {
400
- apiDefault.set({ token: 'abc123' })
401
-
402
- const responseItem: ApiResponseItem = {
403
- path: '/api/test',
404
- method: ApiMethodItem.post,
405
- request: { token: 'abc123', action: 'getData' },
406
- response: { success: true }
407
- }
408
-
409
- apiResponse.add(responseItem)
410
- const result = await apiResponse.emulator({
411
- path: '/api/test',
412
- method: ApiMethodItem.post,
413
- request: { action: 'getData' },
414
- global: true
415
- })
416
-
417
- expect(result).toEqual({ success: true })
418
- })
419
-
420
- it('should handle lag simulation', async () => {
421
- const responseItem: ApiResponseItem = {
422
- path: '/api/test',
423
- method: ApiMethodItem.get,
424
- response: { data: 'test' },
425
- lag: true
426
- }
427
-
428
- apiResponse.add(responseItem)
429
-
430
- const startTime = Date.now()
431
- const result = await apiResponse.emulator({
432
- path: '/api/test',
433
- method: ApiMethodItem.get
434
- })
435
- const endTime = Date.now()
436
-
437
- expect(result).toEqual({ data: 'test' })
438
- // Проверка, что была задержка (минимум несколько миллисекунд)
439
- expect(endTime - startTime).toBeGreaterThanOrEqual(0)
440
- }, 10000)
441
- })
442
-
443
- describe('integration tests', () => {
444
- it('should handle complete workflow with multiple responses', async () => {
445
- const responses: ApiResponseItem[] = [
446
- {
447
- path: '/api/users',
448
- method: ApiMethodItem.get,
449
- response: [{ id: 1, name: 'User 1' }, { id: 2, name: 'User 2' }]
450
- },
451
- {
452
- path: /^\/api\/users\/\d+$/,
453
- method: ApiMethodItem.get,
454
- response: (request: any) => ({ id: 1, name: 'User 1', request })
455
- },
456
- {
457
- path: '/api/users',
458
- method: ApiMethodItem.post,
459
- request: { name: '*any' },
460
- response: { id: 3, name: 'New User' }
461
- }
462
- ]
463
-
464
- apiResponse.add(responses)
465
-
466
- // GET список
467
- const list = await apiResponse.emulator({
468
- path: '/api/users',
469
- method: ApiMethodItem.get
470
- })
471
- expect(list).toEqual([{ id: 1, name: 'User 1' }, { id: 2, name: 'User 2' }])
472
-
473
- // GET один элемент
474
- const user = await apiResponse.emulator({
475
- path: '/api/users/1',
476
- method: ApiMethodItem.get
477
- })
478
- expect(user).toHaveProperty('id', 1)
479
-
480
- // POST создание
481
- const created = await apiResponse.emulator({
482
- path: '/api/users',
483
- method: ApiMethodItem.post,
484
- request: { name: 'Test User' },
485
- global: true
486
- })
487
- expect(created).toEqual({ id: 3, name: 'New User' })
488
- })
489
-
490
- it('should work with disabled responses via function', () => {
491
- let isDisabled = false
492
-
493
- const responseItem: ApiResponseItem = {
494
- path: '/api/test',
495
- method: ApiMethodItem.get,
496
- response: { data: 'test' },
497
- disable: () => isDisabled
498
- }
499
-
500
- apiResponse.add(responseItem)
501
-
502
- // Включено
503
- let result = apiResponse.get('/api/test', ApiMethodItem.get)
504
- expect(result).toEqual(responseItem)
505
-
506
- // Отключено
507
- isDisabled = true
508
- result = apiResponse.get('/api/test', ApiMethodItem.get, undefined, true) // devMode для повторного запроса
509
- expect(result).toBeUndefined()
510
- })
511
-
512
- it('should work with chaining', () => {
513
- const result = apiResponse
514
- .setDevMode(true)
515
- .add({
516
- path: '/api/test1',
517
- method: ApiMethodItem.get,
518
- response: {}
519
- })
520
- .add({
521
- path: '/api/test2',
522
- method: ApiMethodItem.get,
523
- response: {}
524
- })
525
-
526
- expect(result).toBe(apiResponse)
527
- expect(apiResponse.getList()).toHaveLength(2)
528
- })
529
-
530
- it('should handle FormData request matching', () => {
531
- const responseItem: ApiResponseItem = {
532
- path: '/api/upload',
533
- method: ApiMethodItem.post,
534
- request: '*any',
535
- response: { uploaded: true }
536
- }
537
-
538
- apiResponse.add(responseItem)
539
-
540
- const formData = new FormData()
541
- formData.set('file', 'test.jpg')
542
-
543
- const result = apiResponse.get('/api/upload', ApiMethodItem.post, formData)
544
- expect(result).toEqual(responseItem)
545
- })
546
- })
547
- })