@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.
- package/dist/functions/copyObjectLite.d.ts +9 -0
- package/dist/library.d.ts +1 -0
- package/dist/library.js +405 -411
- package/package.json +1 -3
- package/src/classes/Api.ts +0 -407
- package/src/classes/ApiDefault.ts +0 -83
- package/src/classes/ApiHeaders.ts +0 -52
- package/src/classes/ApiPreparation.ts +0 -114
- package/src/classes/ApiResponse.ts +0 -293
- package/src/classes/ApiStatus.ts +0 -173
- package/src/classes/BroadcastMessage.ts +0 -73
- package/src/classes/Cache.ts +0 -60
- package/src/classes/CacheItem.ts +0 -95
- package/src/classes/CacheStatic.ts +0 -30
- package/src/classes/Cookie.ts +0 -135
- package/src/classes/CookieBlock.ts +0 -31
- package/src/classes/DataStorage.ts +0 -194
- package/src/classes/Datetime.ts +0 -891
- package/src/classes/EventItem.ts +0 -373
- package/src/classes/Geo.ts +0 -320
- package/src/classes/GeoFlag.ts +0 -386
- package/src/classes/GeoIntl.ts +0 -839
- package/src/classes/GeoPhone.ts +0 -272
- package/src/classes/Global.ts +0 -32
- package/src/classes/Hash.ts +0 -142
- package/src/classes/Icons.ts +0 -165
- package/src/classes/Loading.ts +0 -90
- package/src/classes/Meta.ts +0 -284
- package/src/classes/MetaManager.ts +0 -200
- package/src/classes/MetaOg.ts +0 -147
- package/src/classes/MetaTwitter.ts +0 -154
- package/src/classes/ScrollbarWidth.ts +0 -86
- package/src/classes/Translate.ts +0 -293
- package/src/classes/__tests__/Api.test.ts +0 -728
- package/src/classes/__tests__/ApiDefault.test.ts +0 -222
- package/src/classes/__tests__/ApiHeaders.test.ts +0 -447
- package/src/classes/__tests__/ApiPreparation.test.ts +0 -257
- package/src/classes/__tests__/ApiResponse.test.ts +0 -547
- package/src/classes/__tests__/ApiStatus.test.ts +0 -403
- package/src/classes/__tests__/Meta.test.ts +0 -629
- package/src/classes/__tests__/MetaManager.test.ts +0 -836
- package/src/classes/__tests__/MetaOg.test.ts +0 -677
- package/src/classes/__tests__/MetaTwitter.test.ts +0 -423
- package/src/functions/anyToString.ts +0 -36
- package/src/functions/applyTemplate.ts +0 -63
- package/src/functions/arrFill.ts +0 -10
- package/src/functions/copyObject.ts +0 -10
- package/src/functions/createElement.ts +0 -40
- package/src/functions/domQuerySelector.ts +0 -15
- package/src/functions/domQuerySelectorAll.ts +0 -15
- package/src/functions/encodeAttribute.ts +0 -15
- package/src/functions/eventStopPropagation.ts +0 -10
- package/src/functions/executeFunction.ts +0 -13
- package/src/functions/executePromise.ts +0 -19
- package/src/functions/forEach.ts +0 -39
- package/src/functions/frame.ts +0 -38
- package/src/functions/getAttributes.ts +0 -27
- package/src/functions/getClipboardData.ts +0 -13
- package/src/functions/getColumn.ts +0 -18
- package/src/functions/getElement.ts +0 -35
- package/src/functions/getElementId.ts +0 -39
- package/src/functions/getElementItem.ts +0 -27
- package/src/functions/getElementOrWindow.ts +0 -23
- package/src/functions/getExp.ts +0 -21
- package/src/functions/getItemByPath.ts +0 -24
- package/src/functions/getKey.ts +0 -9
- package/src/functions/getLengthOfAllArray.ts +0 -13
- package/src/functions/getMaxLengthAllArray.ts +0 -13
- package/src/functions/getMinLengthAllArray.ts +0 -13
- package/src/functions/getMouseClient.ts +0 -17
- package/src/functions/getMouseClientX.ts +0 -9
- package/src/functions/getMouseClientY.ts +0 -9
- package/src/functions/getObjectByKeys.ts +0 -24
- package/src/functions/getObjectNoUndefined.ts +0 -23
- package/src/functions/getObjectOrNone.ts +0 -11
- package/src/functions/getRandomText.ts +0 -29
- package/src/functions/getRequestString.ts +0 -21
- package/src/functions/getStepPercent.ts +0 -19
- package/src/functions/getStepValue.ts +0 -19
- package/src/functions/goScroll.ts +0 -40
- package/src/functions/inArray.ts +0 -10
- package/src/functions/initScrollbarOffset.ts +0 -14
- package/src/functions/intersectKey.ts +0 -34
- package/src/functions/isArray.ts +0 -9
- package/src/functions/isDifferent.ts +0 -27
- package/src/functions/isDomRuntime.ts +0 -12
- package/src/functions/isFilled.ts +0 -49
- package/src/functions/isFloat.ts +0 -16
- package/src/functions/isFunction.ts +0 -11
- package/src/functions/isInDom.ts +0 -15
- package/src/functions/isIntegerBetween.ts +0 -11
- package/src/functions/isNull.ts +0 -11
- package/src/functions/isNumber.ts +0 -16
- package/src/functions/isObject.ts +0 -9
- package/src/functions/isObjectNotArray.ts +0 -11
- package/src/functions/isSelected.ts +0 -32
- package/src/functions/isSelectedByList.ts +0 -19
- package/src/functions/isString.ts +0 -9
- package/src/functions/isWindow.ts +0 -11
- package/src/functions/random.ts +0 -10
- package/src/functions/replaceRecursive.ts +0 -60
- package/src/functions/replaceTemplate.ts +0 -22
- package/src/functions/secondToTime.ts +0 -20
- package/src/functions/setElementItem.ts +0 -56
- package/src/functions/setValues.ts +0 -59
- package/src/functions/splice.ts +0 -59
- package/src/functions/strFill.ts +0 -12
- package/src/functions/toArray.ts +0 -19
- package/src/functions/toCamelCase.ts +0 -16
- package/src/functions/toCamelCaseFirst.ts +0 -12
- package/src/functions/toDate.ts +0 -44
- package/src/functions/toKebabCase.ts +0 -25
- package/src/functions/toNumber.ts +0 -35
- package/src/functions/toNumberByMax.ts +0 -33
- package/src/functions/toPercent.ts +0 -10
- package/src/functions/toPercentBy100.ts +0 -12
- package/src/functions/transformation.ts +0 -59
- package/src/functions/uniqueArray.ts +0 -9
- package/src/functions/writeClipboardData.ts +0 -17
- package/src/library.ts +0 -116
- package/src/types/apiTypes.ts +0 -143
- package/src/types/basicTypes.ts +0 -155
- package/src/types/geoTypes.ts +0 -109
- package/src/types/metaTypes.ts +0 -764
- package/src/vite-env.d.ts +0 -1
|
@@ -1,403 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach } from 'vitest'
|
|
2
|
-
import { ApiStatus } from '../ApiStatus'
|
|
3
|
-
|
|
4
|
-
describe('ApiStatus', () => {
|
|
5
|
-
let apiStatus: ApiStatus
|
|
6
|
-
|
|
7
|
-
beforeEach(() => {
|
|
8
|
-
apiStatus = new ApiStatus()
|
|
9
|
-
})
|
|
10
|
-
|
|
11
|
-
describe('get', () => {
|
|
12
|
-
it('should return undefined when no status data is set', () => {
|
|
13
|
-
expect(apiStatus.get()).toBeUndefined()
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
it('should return the status data', () => {
|
|
17
|
-
const statusData = {
|
|
18
|
-
status: 200,
|
|
19
|
-
statusText: 'OK',
|
|
20
|
-
error: undefined,
|
|
21
|
-
lastResponse: { data: 'test' },
|
|
22
|
-
lastMessage: 'Success'
|
|
23
|
-
}
|
|
24
|
-
apiStatus.set(statusData)
|
|
25
|
-
expect(apiStatus.get()).toEqual(statusData)
|
|
26
|
-
})
|
|
27
|
-
})
|
|
28
|
-
|
|
29
|
-
describe('getStatus', () => {
|
|
30
|
-
it('should return undefined when no status code is set', () => {
|
|
31
|
-
expect(apiStatus.getStatus()).toBeUndefined()
|
|
32
|
-
})
|
|
33
|
-
|
|
34
|
-
it('should return the status code', () => {
|
|
35
|
-
apiStatus.setStatus(200)
|
|
36
|
-
expect(apiStatus.getStatus()).toBe(200)
|
|
37
|
-
})
|
|
38
|
-
|
|
39
|
-
it('should return updated status code', () => {
|
|
40
|
-
apiStatus.setStatus(200)
|
|
41
|
-
apiStatus.setStatus(404)
|
|
42
|
-
expect(apiStatus.getStatus()).toBe(404)
|
|
43
|
-
})
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
describe('getStatusText', () => {
|
|
47
|
-
it('should return undefined when no status text is set', () => {
|
|
48
|
-
expect(apiStatus.getStatusText()).toBeUndefined()
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
it('should return the status text', () => {
|
|
52
|
-
apiStatus.setStatus(200, 'OK')
|
|
53
|
-
expect(apiStatus.getStatusText()).toBe('OK')
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
it('should return updated status text', () => {
|
|
57
|
-
apiStatus.setStatus(200, 'OK')
|
|
58
|
-
apiStatus.setStatus(404, 'Not Found')
|
|
59
|
-
expect(apiStatus.getStatusText()).toBe('Not Found')
|
|
60
|
-
})
|
|
61
|
-
})
|
|
62
|
-
|
|
63
|
-
describe('getError', () => {
|
|
64
|
-
it('should return undefined when no error is set', () => {
|
|
65
|
-
expect(apiStatus.getError()).toBeUndefined()
|
|
66
|
-
})
|
|
67
|
-
|
|
68
|
-
it('should return the error message', () => {
|
|
69
|
-
apiStatus.setError('Something went wrong')
|
|
70
|
-
expect(apiStatus.getError()).toBe('Something went wrong')
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
it('should return updated error message', () => {
|
|
74
|
-
apiStatus.setError('First error')
|
|
75
|
-
apiStatus.setError('Second error')
|
|
76
|
-
expect(apiStatus.getError()).toBe('Second error')
|
|
77
|
-
})
|
|
78
|
-
|
|
79
|
-
it('should clear error when set to undefined', () => {
|
|
80
|
-
apiStatus.setError('Error')
|
|
81
|
-
apiStatus.setError(undefined)
|
|
82
|
-
expect(apiStatus.getError()).toBeUndefined()
|
|
83
|
-
})
|
|
84
|
-
})
|
|
85
|
-
|
|
86
|
-
describe('getResponse', () => {
|
|
87
|
-
it('should return undefined when no response is set', () => {
|
|
88
|
-
expect(apiStatus.getResponse()).toBeUndefined()
|
|
89
|
-
})
|
|
90
|
-
|
|
91
|
-
it('should return the last response data', () => {
|
|
92
|
-
const responseData = { id: 1, name: 'Test' }
|
|
93
|
-
apiStatus.setLastResponse(responseData)
|
|
94
|
-
expect(apiStatus.getResponse()).toEqual(responseData)
|
|
95
|
-
})
|
|
96
|
-
|
|
97
|
-
it('should work with generic type', () => {
|
|
98
|
-
interface UserResponse {
|
|
99
|
-
userId: number
|
|
100
|
-
username: string
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
const response: UserResponse = { userId: 123, username: 'test_user' }
|
|
104
|
-
apiStatus.setLastResponse(response)
|
|
105
|
-
|
|
106
|
-
const result = apiStatus.getResponse<UserResponse>()
|
|
107
|
-
expect(result).toEqual(response)
|
|
108
|
-
expect(result?.userId).toBe(123)
|
|
109
|
-
expect(result?.username).toBe('test_user')
|
|
110
|
-
})
|
|
111
|
-
|
|
112
|
-
it('should handle array responses', () => {
|
|
113
|
-
const arrayResponse = [1, 2, 3, 4, 5]
|
|
114
|
-
apiStatus.setLastResponse(arrayResponse)
|
|
115
|
-
expect(apiStatus.getResponse()).toEqual(arrayResponse)
|
|
116
|
-
})
|
|
117
|
-
|
|
118
|
-
it('should handle string responses', () => {
|
|
119
|
-
apiStatus.setLastResponse('text response')
|
|
120
|
-
expect(apiStatus.getResponse()).toBe('text response')
|
|
121
|
-
})
|
|
122
|
-
})
|
|
123
|
-
|
|
124
|
-
describe('getMessage', () => {
|
|
125
|
-
it('should return empty string when no message is set', () => {
|
|
126
|
-
expect(apiStatus.getMessage()).toBe('')
|
|
127
|
-
})
|
|
128
|
-
|
|
129
|
-
it('should return the last message', () => {
|
|
130
|
-
apiStatus.setLastMessage('Operation successful')
|
|
131
|
-
expect(apiStatus.getMessage()).toBe('Operation successful')
|
|
132
|
-
})
|
|
133
|
-
|
|
134
|
-
it('should extract message from response with message field', () => {
|
|
135
|
-
const response = {
|
|
136
|
-
message: 'Auto-extracted message',
|
|
137
|
-
data: 'some data'
|
|
138
|
-
}
|
|
139
|
-
apiStatus.setLastResponse(response)
|
|
140
|
-
expect(apiStatus.getMessage()).toBe('Auto-extracted message')
|
|
141
|
-
})
|
|
142
|
-
|
|
143
|
-
it('should not extract message from non-object response', () => {
|
|
144
|
-
apiStatus.setLastResponse('string response')
|
|
145
|
-
expect(apiStatus.getMessage()).toBe('')
|
|
146
|
-
})
|
|
147
|
-
|
|
148
|
-
it('should not extract message from array response', () => {
|
|
149
|
-
apiStatus.setLastResponse([{ message: 'test' }])
|
|
150
|
-
expect(apiStatus.getMessage()).toBe('')
|
|
151
|
-
})
|
|
152
|
-
})
|
|
153
|
-
|
|
154
|
-
describe('set', () => {
|
|
155
|
-
it('should set all status fields', () => {
|
|
156
|
-
const statusData = {
|
|
157
|
-
status: 201,
|
|
158
|
-
statusText: 'Created',
|
|
159
|
-
error: 'No error',
|
|
160
|
-
lastResponse: { created: true },
|
|
161
|
-
lastMessage: 'Resource created'
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
apiStatus.set(statusData)
|
|
165
|
-
|
|
166
|
-
expect(apiStatus.getStatus()).toBe(201)
|
|
167
|
-
expect(apiStatus.getStatusText()).toBe('Created')
|
|
168
|
-
expect(apiStatus.getError()).toBe('No error')
|
|
169
|
-
expect(apiStatus.getResponse()).toEqual({ created: true })
|
|
170
|
-
expect(apiStatus.getMessage()).toBe('Resource created')
|
|
171
|
-
})
|
|
172
|
-
|
|
173
|
-
it('should set partial status fields', () => {
|
|
174
|
-
apiStatus.set({ status: 200 })
|
|
175
|
-
expect(apiStatus.getStatus()).toBe(200)
|
|
176
|
-
expect(apiStatus.getStatusText()).toBeUndefined()
|
|
177
|
-
})
|
|
178
|
-
|
|
179
|
-
it('should return this for chaining', () => {
|
|
180
|
-
const result = apiStatus.set({ status: 200 })
|
|
181
|
-
expect(result).toBe(apiStatus)
|
|
182
|
-
})
|
|
183
|
-
|
|
184
|
-
it('should update only specified fields', () => {
|
|
185
|
-
apiStatus.set({
|
|
186
|
-
status: 200,
|
|
187
|
-
statusText: 'OK',
|
|
188
|
-
lastMessage: 'First'
|
|
189
|
-
})
|
|
190
|
-
|
|
191
|
-
apiStatus.set({
|
|
192
|
-
status: 404,
|
|
193
|
-
lastMessage: 'Second'
|
|
194
|
-
})
|
|
195
|
-
|
|
196
|
-
expect(apiStatus.getStatus()).toBe(404)
|
|
197
|
-
expect(apiStatus.getStatusText()).toBe('OK') // сохранился
|
|
198
|
-
expect(apiStatus.getMessage()).toBe('Second')
|
|
199
|
-
})
|
|
200
|
-
})
|
|
201
|
-
|
|
202
|
-
describe('setStatus', () => {
|
|
203
|
-
it('should set status code only', () => {
|
|
204
|
-
apiStatus.setStatus(200)
|
|
205
|
-
expect(apiStatus.getStatus()).toBe(200)
|
|
206
|
-
expect(apiStatus.getStatusText()).toBeUndefined()
|
|
207
|
-
})
|
|
208
|
-
|
|
209
|
-
it('should set status code and text', () => {
|
|
210
|
-
apiStatus.setStatus(404, 'Not Found')
|
|
211
|
-
expect(apiStatus.getStatus()).toBe(404)
|
|
212
|
-
expect(apiStatus.getStatusText()).toBe('Not Found')
|
|
213
|
-
})
|
|
214
|
-
|
|
215
|
-
it('should return this for chaining', () => {
|
|
216
|
-
const result = apiStatus.setStatus(200, 'OK')
|
|
217
|
-
expect(result).toBe(apiStatus)
|
|
218
|
-
})
|
|
219
|
-
|
|
220
|
-
it('should allow chaining with other methods', () => {
|
|
221
|
-
apiStatus
|
|
222
|
-
.setStatus(200, 'OK')
|
|
223
|
-
.setError('No error')
|
|
224
|
-
.setLastMessage('Success')
|
|
225
|
-
|
|
226
|
-
expect(apiStatus.getStatus()).toBe(200)
|
|
227
|
-
expect(apiStatus.getStatusText()).toBe('OK')
|
|
228
|
-
expect(apiStatus.getError()).toBe('No error')
|
|
229
|
-
expect(apiStatus.getMessage()).toBe('Success')
|
|
230
|
-
})
|
|
231
|
-
})
|
|
232
|
-
|
|
233
|
-
describe('setError', () => {
|
|
234
|
-
it('should set error message', () => {
|
|
235
|
-
apiStatus.setError('Network error')
|
|
236
|
-
expect(apiStatus.getError()).toBe('Network error')
|
|
237
|
-
})
|
|
238
|
-
|
|
239
|
-
it('should clear error when undefined', () => {
|
|
240
|
-
apiStatus.setError('Error')
|
|
241
|
-
apiStatus.setError(undefined)
|
|
242
|
-
expect(apiStatus.getError()).toBeUndefined()
|
|
243
|
-
})
|
|
244
|
-
|
|
245
|
-
it('should return this for chaining', () => {
|
|
246
|
-
const result = apiStatus.setError('Error')
|
|
247
|
-
expect(result).toBe(apiStatus)
|
|
248
|
-
})
|
|
249
|
-
})
|
|
250
|
-
|
|
251
|
-
describe('setLastResponse', () => {
|
|
252
|
-
it('should set last response data', () => {
|
|
253
|
-
const data = { id: 1, name: 'Test' }
|
|
254
|
-
apiStatus.setLastResponse(data)
|
|
255
|
-
expect(apiStatus.getResponse()).toEqual(data)
|
|
256
|
-
})
|
|
257
|
-
|
|
258
|
-
it('should auto-extract message from response', () => {
|
|
259
|
-
apiStatus.setLastResponse({
|
|
260
|
-
message: 'Extracted message',
|
|
261
|
-
data: 'test'
|
|
262
|
-
})
|
|
263
|
-
expect(apiStatus.getMessage()).toBe('Extracted message')
|
|
264
|
-
expect(apiStatus.getResponse()).toEqual({
|
|
265
|
-
message: 'Extracted message',
|
|
266
|
-
data: 'test'
|
|
267
|
-
})
|
|
268
|
-
})
|
|
269
|
-
|
|
270
|
-
it('should not extract message from non-object', () => {
|
|
271
|
-
apiStatus.setLastResponse('text')
|
|
272
|
-
expect(apiStatus.getMessage()).toBe('')
|
|
273
|
-
})
|
|
274
|
-
|
|
275
|
-
it('should not extract message from array', () => {
|
|
276
|
-
apiStatus.setLastResponse([{ message: 'test' }])
|
|
277
|
-
expect(apiStatus.getMessage()).toBe('')
|
|
278
|
-
})
|
|
279
|
-
|
|
280
|
-
it('should convert non-string message to string', () => {
|
|
281
|
-
apiStatus.setLastResponse({ message: 123 })
|
|
282
|
-
expect(apiStatus.getMessage()).toBe('123')
|
|
283
|
-
})
|
|
284
|
-
|
|
285
|
-
it('should return this for chaining', () => {
|
|
286
|
-
const result = apiStatus.setLastResponse({ data: 'test' })
|
|
287
|
-
expect(result).toBe(apiStatus)
|
|
288
|
-
})
|
|
289
|
-
|
|
290
|
-
it('should handle undefined response', () => {
|
|
291
|
-
apiStatus.setLastResponse({ data: 'test' })
|
|
292
|
-
apiStatus.setLastResponse(undefined)
|
|
293
|
-
expect(apiStatus.getResponse()).toBeUndefined()
|
|
294
|
-
})
|
|
295
|
-
})
|
|
296
|
-
|
|
297
|
-
describe('setLastMessage', () => {
|
|
298
|
-
it('should set last message', () => {
|
|
299
|
-
apiStatus.setLastMessage('Custom message')
|
|
300
|
-
expect(apiStatus.getMessage()).toBe('Custom message')
|
|
301
|
-
})
|
|
302
|
-
|
|
303
|
-
it('should clear message when undefined', () => {
|
|
304
|
-
apiStatus.setLastMessage('Message')
|
|
305
|
-
apiStatus.setLastMessage(undefined)
|
|
306
|
-
expect(apiStatus.getMessage()).toBe('')
|
|
307
|
-
})
|
|
308
|
-
|
|
309
|
-
it('should return this for chaining', () => {
|
|
310
|
-
const result = apiStatus.setLastMessage('Message')
|
|
311
|
-
expect(result).toBe(apiStatus)
|
|
312
|
-
})
|
|
313
|
-
|
|
314
|
-
it('should override message extracted from response', () => {
|
|
315
|
-
apiStatus.setLastResponse({ message: 'Auto message' })
|
|
316
|
-
apiStatus.setLastMessage('Manual message')
|
|
317
|
-
expect(apiStatus.getMessage()).toBe('Manual message')
|
|
318
|
-
})
|
|
319
|
-
})
|
|
320
|
-
|
|
321
|
-
describe('integration tests', () => {
|
|
322
|
-
it('should handle complete workflow', () => {
|
|
323
|
-
// Успешный запрос
|
|
324
|
-
apiStatus
|
|
325
|
-
.setStatus(200, 'OK')
|
|
326
|
-
.setLastResponse({
|
|
327
|
-
message: 'Data fetched successfully',
|
|
328
|
-
data: { items: [1, 2, 3] }
|
|
329
|
-
})
|
|
330
|
-
|
|
331
|
-
expect(apiStatus.getStatus()).toBe(200)
|
|
332
|
-
expect(apiStatus.getStatusText()).toBe('OK')
|
|
333
|
-
expect(apiStatus.getMessage()).toBe('Data fetched successfully')
|
|
334
|
-
expect(apiStatus.getResponse()).toEqual({
|
|
335
|
-
message: 'Data fetched successfully',
|
|
336
|
-
data: { items: [1, 2, 3] }
|
|
337
|
-
})
|
|
338
|
-
expect(apiStatus.getError()).toBeUndefined()
|
|
339
|
-
})
|
|
340
|
-
|
|
341
|
-
it('should handle error workflow', () => {
|
|
342
|
-
// Запрос с ошибкой
|
|
343
|
-
apiStatus
|
|
344
|
-
.setStatus(500, 'Internal Server Error')
|
|
345
|
-
.setError('Database connection failed')
|
|
346
|
-
.setLastResponse(null)
|
|
347
|
-
|
|
348
|
-
expect(apiStatus.getStatus()).toBe(500)
|
|
349
|
-
expect(apiStatus.getStatusText()).toBe('Internal Server Error')
|
|
350
|
-
expect(apiStatus.getError()).toBe('Database connection failed')
|
|
351
|
-
expect(apiStatus.getResponse()).toBeNull()
|
|
352
|
-
})
|
|
353
|
-
|
|
354
|
-
it('should handle multiple updates', () => {
|
|
355
|
-
// Первый запрос
|
|
356
|
-
apiStatus
|
|
357
|
-
.setStatus(200, 'OK')
|
|
358
|
-
.setLastResponse({ id: 1 })
|
|
359
|
-
.setLastMessage('First request')
|
|
360
|
-
|
|
361
|
-
expect(apiStatus.getStatus()).toBe(200)
|
|
362
|
-
expect(apiStatus.getMessage()).toBe('First request')
|
|
363
|
-
|
|
364
|
-
// Второй запрос
|
|
365
|
-
apiStatus
|
|
366
|
-
.setStatus(201, 'Created')
|
|
367
|
-
.setLastResponse({ id: 2 })
|
|
368
|
-
.setLastMessage('Second request')
|
|
369
|
-
|
|
370
|
-
expect(apiStatus.getStatus()).toBe(201)
|
|
371
|
-
expect(apiStatus.getStatusText()).toBe('Created')
|
|
372
|
-
expect(apiStatus.getResponse()).toEqual({ id: 2 })
|
|
373
|
-
expect(apiStatus.getMessage()).toBe('Second request')
|
|
374
|
-
})
|
|
375
|
-
|
|
376
|
-
it('should work with typed generic', () => {
|
|
377
|
-
const typedStatus = new ApiStatus()
|
|
378
|
-
typedStatus.set({
|
|
379
|
-
status: 200,
|
|
380
|
-
statusText: 'OK'
|
|
381
|
-
})
|
|
382
|
-
|
|
383
|
-
expect(typedStatus.getStatus()).toBe(200)
|
|
384
|
-
})
|
|
385
|
-
|
|
386
|
-
it('should handle all setter methods in chain', () => {
|
|
387
|
-
const result = apiStatus
|
|
388
|
-
.setStatus(201, 'Created')
|
|
389
|
-
.setError(undefined)
|
|
390
|
-
.setLastResponse({ id: 123 })
|
|
391
|
-
.setLastMessage('Resource created successfully')
|
|
392
|
-
|
|
393
|
-
expect(result).toBe(apiStatus)
|
|
394
|
-
expect(apiStatus.get()).toEqual({
|
|
395
|
-
status: 201,
|
|
396
|
-
statusText: 'Created',
|
|
397
|
-
error: undefined,
|
|
398
|
-
lastResponse: { id: 123 },
|
|
399
|
-
lastMessage: 'Resource created successfully'
|
|
400
|
-
})
|
|
401
|
-
})
|
|
402
|
-
})
|
|
403
|
-
})
|