@dxtmisha/functional-basic 0.1.1 → 0.2.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 (126) hide show
  1. package/dist/functions/copyObjectLite.d.ts +9 -0
  2. package/dist/functions/isDomData.d.ts +6 -0
  3. package/dist/library.d.ts +2 -0
  4. package/dist/library.js +414 -413
  5. package/package.json +1 -3
  6. package/src/classes/Api.ts +0 -407
  7. package/src/classes/ApiDefault.ts +0 -83
  8. package/src/classes/ApiHeaders.ts +0 -52
  9. package/src/classes/ApiPreparation.ts +0 -114
  10. package/src/classes/ApiResponse.ts +0 -293
  11. package/src/classes/ApiStatus.ts +0 -173
  12. package/src/classes/BroadcastMessage.ts +0 -73
  13. package/src/classes/Cache.ts +0 -60
  14. package/src/classes/CacheItem.ts +0 -95
  15. package/src/classes/CacheStatic.ts +0 -30
  16. package/src/classes/Cookie.ts +0 -135
  17. package/src/classes/CookieBlock.ts +0 -31
  18. package/src/classes/DataStorage.ts +0 -194
  19. package/src/classes/Datetime.ts +0 -891
  20. package/src/classes/EventItem.ts +0 -373
  21. package/src/classes/Geo.ts +0 -320
  22. package/src/classes/GeoFlag.ts +0 -386
  23. package/src/classes/GeoIntl.ts +0 -839
  24. package/src/classes/GeoPhone.ts +0 -272
  25. package/src/classes/Global.ts +0 -32
  26. package/src/classes/Hash.ts +0 -142
  27. package/src/classes/Icons.ts +0 -165
  28. package/src/classes/Loading.ts +0 -90
  29. package/src/classes/Meta.ts +0 -284
  30. package/src/classes/MetaManager.ts +0 -200
  31. package/src/classes/MetaOg.ts +0 -147
  32. package/src/classes/MetaTwitter.ts +0 -154
  33. package/src/classes/ScrollbarWidth.ts +0 -86
  34. package/src/classes/Translate.ts +0 -293
  35. package/src/classes/__tests__/Api.test.ts +0 -728
  36. package/src/classes/__tests__/ApiDefault.test.ts +0 -222
  37. package/src/classes/__tests__/ApiHeaders.test.ts +0 -447
  38. package/src/classes/__tests__/ApiPreparation.test.ts +0 -257
  39. package/src/classes/__tests__/ApiResponse.test.ts +0 -547
  40. package/src/classes/__tests__/ApiStatus.test.ts +0 -403
  41. package/src/classes/__tests__/Meta.test.ts +0 -629
  42. package/src/classes/__tests__/MetaManager.test.ts +0 -836
  43. package/src/classes/__tests__/MetaOg.test.ts +0 -677
  44. package/src/classes/__tests__/MetaTwitter.test.ts +0 -423
  45. package/src/functions/anyToString.ts +0 -36
  46. package/src/functions/applyTemplate.ts +0 -63
  47. package/src/functions/arrFill.ts +0 -10
  48. package/src/functions/copyObject.ts +0 -10
  49. package/src/functions/createElement.ts +0 -40
  50. package/src/functions/domQuerySelector.ts +0 -15
  51. package/src/functions/domQuerySelectorAll.ts +0 -15
  52. package/src/functions/encodeAttribute.ts +0 -15
  53. package/src/functions/eventStopPropagation.ts +0 -10
  54. package/src/functions/executeFunction.ts +0 -13
  55. package/src/functions/executePromise.ts +0 -19
  56. package/src/functions/forEach.ts +0 -39
  57. package/src/functions/frame.ts +0 -38
  58. package/src/functions/getAttributes.ts +0 -27
  59. package/src/functions/getClipboardData.ts +0 -13
  60. package/src/functions/getColumn.ts +0 -18
  61. package/src/functions/getElement.ts +0 -35
  62. package/src/functions/getElementId.ts +0 -39
  63. package/src/functions/getElementItem.ts +0 -27
  64. package/src/functions/getElementOrWindow.ts +0 -23
  65. package/src/functions/getExp.ts +0 -21
  66. package/src/functions/getItemByPath.ts +0 -24
  67. package/src/functions/getKey.ts +0 -9
  68. package/src/functions/getLengthOfAllArray.ts +0 -13
  69. package/src/functions/getMaxLengthAllArray.ts +0 -13
  70. package/src/functions/getMinLengthAllArray.ts +0 -13
  71. package/src/functions/getMouseClient.ts +0 -17
  72. package/src/functions/getMouseClientX.ts +0 -9
  73. package/src/functions/getMouseClientY.ts +0 -9
  74. package/src/functions/getObjectByKeys.ts +0 -24
  75. package/src/functions/getObjectNoUndefined.ts +0 -23
  76. package/src/functions/getObjectOrNone.ts +0 -11
  77. package/src/functions/getRandomText.ts +0 -29
  78. package/src/functions/getRequestString.ts +0 -21
  79. package/src/functions/getStepPercent.ts +0 -19
  80. package/src/functions/getStepValue.ts +0 -19
  81. package/src/functions/goScroll.ts +0 -40
  82. package/src/functions/inArray.ts +0 -10
  83. package/src/functions/initScrollbarOffset.ts +0 -14
  84. package/src/functions/intersectKey.ts +0 -34
  85. package/src/functions/isArray.ts +0 -9
  86. package/src/functions/isDifferent.ts +0 -27
  87. package/src/functions/isDomRuntime.ts +0 -12
  88. package/src/functions/isFilled.ts +0 -49
  89. package/src/functions/isFloat.ts +0 -16
  90. package/src/functions/isFunction.ts +0 -11
  91. package/src/functions/isInDom.ts +0 -15
  92. package/src/functions/isIntegerBetween.ts +0 -11
  93. package/src/functions/isNull.ts +0 -11
  94. package/src/functions/isNumber.ts +0 -16
  95. package/src/functions/isObject.ts +0 -9
  96. package/src/functions/isObjectNotArray.ts +0 -11
  97. package/src/functions/isSelected.ts +0 -32
  98. package/src/functions/isSelectedByList.ts +0 -19
  99. package/src/functions/isString.ts +0 -9
  100. package/src/functions/isWindow.ts +0 -11
  101. package/src/functions/random.ts +0 -10
  102. package/src/functions/replaceRecursive.ts +0 -60
  103. package/src/functions/replaceTemplate.ts +0 -22
  104. package/src/functions/secondToTime.ts +0 -20
  105. package/src/functions/setElementItem.ts +0 -56
  106. package/src/functions/setValues.ts +0 -59
  107. package/src/functions/splice.ts +0 -59
  108. package/src/functions/strFill.ts +0 -12
  109. package/src/functions/toArray.ts +0 -19
  110. package/src/functions/toCamelCase.ts +0 -16
  111. package/src/functions/toCamelCaseFirst.ts +0 -12
  112. package/src/functions/toDate.ts +0 -44
  113. package/src/functions/toKebabCase.ts +0 -25
  114. package/src/functions/toNumber.ts +0 -35
  115. package/src/functions/toNumberByMax.ts +0 -33
  116. package/src/functions/toPercent.ts +0 -10
  117. package/src/functions/toPercentBy100.ts +0 -12
  118. package/src/functions/transformation.ts +0 -59
  119. package/src/functions/uniqueArray.ts +0 -9
  120. package/src/functions/writeClipboardData.ts +0 -17
  121. package/src/library.ts +0 -116
  122. package/src/types/apiTypes.ts +0 -143
  123. package/src/types/basicTypes.ts +0 -155
  124. package/src/types/geoTypes.ts +0 -109
  125. package/src/types/metaTypes.ts +0 -764
  126. 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
- })