@ama-sdk/client-fetch 12.3.0-prerelease.70 → 12.3.0-prerelease.72
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/cjs/api-fetch-client.js +12 -13
- package/cjs/plugins/abort/abort.spec.js +79 -73
- package/cjs/plugins/concurrent/concurrent.fetch.js +8 -12
- package/cjs/plugins/concurrent/concurrent.spec.js +95 -91
- package/cjs/plugins/keepalive/keepalive.request.js +3 -4
- package/cjs/plugins/keepalive/keepalive.spec.js +28 -26
- package/cjs/plugins/mock-intercept/mock-intercept.fetch.js +11 -14
- package/cjs/plugins/mock-intercept/mock-intercept.spec.js +243 -231
- package/cjs/plugins/perf-metric/perf-metric.fetch.js +7 -10
- package/cjs/plugins/retry/retry.fetch.js +14 -19
- package/cjs/plugins/retry/retry.spec.js +229 -217
- package/cjs/plugins/timeout/timeout.fetch.js +9 -11
- package/cjs/plugins/timeout/timeout.spec.js +207 -197
- package/cjs/plugins/wait-for/wait-for.fetch.js +15 -21
- package/cjs/plugins/wait-for/wait-for.spec.js +207 -195
- package/esm2015/api-fetch-client.js +12 -13
- package/esm2015/plugins/abort/abort.spec.js +79 -73
- package/esm2015/plugins/concurrent/concurrent.fetch.js +8 -12
- package/esm2015/plugins/concurrent/concurrent.spec.js +95 -91
- package/esm2015/plugins/keepalive/keepalive.request.js +3 -4
- package/esm2015/plugins/keepalive/keepalive.spec.js +28 -26
- package/esm2015/plugins/mock-intercept/mock-intercept.fetch.js +11 -14
- package/esm2015/plugins/mock-intercept/mock-intercept.spec.js +243 -231
- package/esm2015/plugins/perf-metric/perf-metric.fetch.js +7 -10
- package/esm2015/plugins/retry/retry.fetch.js +14 -19
- package/esm2015/plugins/retry/retry.spec.js +229 -217
- package/esm2015/plugins/timeout/timeout.fetch.js +9 -11
- package/esm2015/plugins/timeout/timeout.spec.js +207 -197
- package/esm2015/plugins/wait-for/wait-for.fetch.js +15 -21
- package/esm2015/plugins/wait-for/wait-for.spec.js +207 -195
- package/package.json +8 -8
|
@@ -126,203 +126,213 @@ var _this = this;
|
|
|
126
126
|
import { EmptyResponseError, ResponseTimeoutError } from '@ama-sdk/core';
|
|
127
127
|
import { impervaCaptchaEventHandlerFactory, TimeoutFetch } from './timeout.fetch';
|
|
128
128
|
describe('Timeout Fetch Plugin', function() {
|
|
129
|
-
it('should reject on timeout',
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
return
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
promise
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
129
|
+
it('should reject on timeout', function() {
|
|
130
|
+
return _async_to_generator(function() {
|
|
131
|
+
var plugin, runner, call, callback;
|
|
132
|
+
return _ts_generator(this, function(_state) {
|
|
133
|
+
switch(_state.label){
|
|
134
|
+
case 0:
|
|
135
|
+
plugin = new TimeoutFetch(100);
|
|
136
|
+
runner = plugin.load({
|
|
137
|
+
controller: new AbortController()
|
|
138
|
+
});
|
|
139
|
+
call = new Promise(function(resolve) {
|
|
140
|
+
return setTimeout(function() {
|
|
141
|
+
return resolve(undefined);
|
|
142
|
+
}, 1000);
|
|
143
|
+
});
|
|
144
|
+
callback = jest.fn();
|
|
145
|
+
runner.transform(call).catch(callback);
|
|
146
|
+
return [
|
|
147
|
+
4,
|
|
148
|
+
jest.advanceTimersByTimeAsync(99)
|
|
149
|
+
];
|
|
150
|
+
case 1:
|
|
151
|
+
_state.sent();
|
|
152
|
+
expect(callback).not.toHaveBeenCalled();
|
|
153
|
+
return [
|
|
154
|
+
4,
|
|
155
|
+
jest.advanceTimersByTimeAsync(1)
|
|
156
|
+
];
|
|
157
|
+
case 2:
|
|
158
|
+
_state.sent();
|
|
159
|
+
expect(callback).toHaveBeenCalledWith(new ResponseTimeoutError('in 100ms'));
|
|
160
|
+
return [
|
|
161
|
+
2
|
|
162
|
+
];
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
})();
|
|
166
|
+
});
|
|
167
|
+
it('should not reject on fetch rejection', function() {
|
|
168
|
+
return _async_to_generator(function() {
|
|
169
|
+
var plugin, runner, call, callback;
|
|
170
|
+
return _ts_generator(this, function(_state) {
|
|
171
|
+
switch(_state.label){
|
|
172
|
+
case 0:
|
|
173
|
+
plugin = new TimeoutFetch(6000);
|
|
174
|
+
runner = plugin.load({
|
|
175
|
+
controller: new AbortController()
|
|
176
|
+
});
|
|
177
|
+
call = new Promise(function(_resolve, reject) {
|
|
178
|
+
return setTimeout(function() {
|
|
179
|
+
return reject(new EmptyResponseError(''));
|
|
180
|
+
}, 100);
|
|
181
|
+
});
|
|
182
|
+
callback = jest.fn();
|
|
183
|
+
runner.transform(call).catch(callback);
|
|
184
|
+
return [
|
|
185
|
+
4,
|
|
186
|
+
jest.advanceTimersByTimeAsync(6000)
|
|
187
|
+
];
|
|
188
|
+
case 1:
|
|
189
|
+
_state.sent();
|
|
190
|
+
expect(callback).toHaveBeenCalledWith(new EmptyResponseError(''));
|
|
191
|
+
return [
|
|
192
|
+
2
|
|
193
|
+
];
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
})();
|
|
197
|
+
});
|
|
198
|
+
it('should forward the fetch response', function() {
|
|
199
|
+
return _async_to_generator(function() {
|
|
200
|
+
var plugin, runner, call, promise;
|
|
201
|
+
return _ts_generator(this, function(_state) {
|
|
202
|
+
switch(_state.label){
|
|
203
|
+
case 0:
|
|
204
|
+
plugin = new TimeoutFetch(2000);
|
|
205
|
+
runner = plugin.load({
|
|
206
|
+
controller: new AbortController()
|
|
207
|
+
});
|
|
208
|
+
call = new Promise(function(resolve) {
|
|
209
|
+
return setTimeout(function() {
|
|
210
|
+
return resolve({
|
|
211
|
+
test: true
|
|
212
|
+
});
|
|
213
|
+
}, 100);
|
|
214
|
+
});
|
|
215
|
+
promise = runner.transform(call);
|
|
216
|
+
return [
|
|
217
|
+
4,
|
|
218
|
+
jest.runAllTimersAsync()
|
|
219
|
+
];
|
|
220
|
+
case 1:
|
|
221
|
+
_state.sent();
|
|
222
|
+
return [
|
|
223
|
+
4,
|
|
224
|
+
promise
|
|
225
|
+
];
|
|
226
|
+
case 2:
|
|
227
|
+
expect.apply(void 0, [
|
|
228
|
+
_state.sent()
|
|
229
|
+
]).toEqual({
|
|
230
|
+
test: true
|
|
231
|
+
});
|
|
232
|
+
return [
|
|
233
|
+
2
|
|
234
|
+
];
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
})();
|
|
238
|
+
});
|
|
239
|
+
it('should not reject if the timeout has been paused and reject if restarted', function() {
|
|
240
|
+
return _async_to_generator(function() {
|
|
241
|
+
var timeoutPauseEvent, plugin, runner, call, callback;
|
|
242
|
+
return _ts_generator(this, function(_state) {
|
|
243
|
+
switch(_state.label){
|
|
244
|
+
case 0:
|
|
245
|
+
timeoutPauseEvent = {
|
|
246
|
+
emitEvent: function(_status) {},
|
|
247
|
+
handler: function(timeoutPauseCallback) {
|
|
248
|
+
timeoutPauseEvent.emitEvent = timeoutPauseCallback;
|
|
249
|
+
return function() {};
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
plugin = new TimeoutFetch(100, timeoutPauseEvent.handler);
|
|
253
|
+
runner = plugin.load({
|
|
254
|
+
controller: new AbortController()
|
|
255
|
+
});
|
|
256
|
+
call = new Promise(function(resolve) {
|
|
257
|
+
return setTimeout(function() {
|
|
258
|
+
return resolve({
|
|
259
|
+
test: true
|
|
260
|
+
});
|
|
261
|
+
}, 500);
|
|
262
|
+
});
|
|
263
|
+
callback = jest.fn();
|
|
264
|
+
runner.transform(call).catch(callback);
|
|
265
|
+
timeoutPauseEvent.emitEvent('timeoutStopped');
|
|
266
|
+
return [
|
|
267
|
+
4,
|
|
268
|
+
jest.advanceTimersByTimeAsync(200)
|
|
269
|
+
];
|
|
270
|
+
case 1:
|
|
271
|
+
_state.sent();
|
|
272
|
+
timeoutPauseEvent.emitEvent('timeoutStarted');
|
|
273
|
+
return [
|
|
274
|
+
4,
|
|
275
|
+
jest.advanceTimersByTimeAsync(200)
|
|
276
|
+
];
|
|
277
|
+
case 2:
|
|
278
|
+
_state.sent();
|
|
279
|
+
expect(callback).toHaveBeenCalledWith(new ResponseTimeoutError('in 100ms'));
|
|
280
|
+
return [
|
|
281
|
+
2
|
|
282
|
+
];
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
})();
|
|
286
|
+
});
|
|
287
|
+
it('should take into account pause events triggered before the call', function() {
|
|
288
|
+
return _async_to_generator(function() {
|
|
289
|
+
var timeoutPauseEvent, plugin, runner, call, promise;
|
|
290
|
+
return _ts_generator(this, function(_state) {
|
|
291
|
+
switch(_state.label){
|
|
292
|
+
case 0:
|
|
293
|
+
timeoutPauseEvent = {
|
|
294
|
+
emitEvent: function(_status) {},
|
|
295
|
+
handler: function(timeoutPauseCallback) {
|
|
296
|
+
timeoutPauseEvent.emitEvent = timeoutPauseCallback;
|
|
297
|
+
return function() {};
|
|
298
|
+
}
|
|
299
|
+
};
|
|
300
|
+
plugin = new TimeoutFetch(250, timeoutPauseEvent.handler);
|
|
301
|
+
runner = plugin.load({
|
|
302
|
+
controller: new AbortController()
|
|
303
|
+
});
|
|
304
|
+
call = new Promise(function(resolve) {
|
|
305
|
+
return setTimeout(function() {
|
|
306
|
+
return resolve({
|
|
307
|
+
test: true
|
|
308
|
+
});
|
|
309
|
+
}, 500);
|
|
310
|
+
});
|
|
311
|
+
timeoutPauseEvent.emitEvent('timeoutStopped');
|
|
312
|
+
promise = runner.transform(call);
|
|
313
|
+
return [
|
|
314
|
+
4,
|
|
315
|
+
jest.runAllTimersAsync()
|
|
316
|
+
];
|
|
317
|
+
case 1:
|
|
318
|
+
_state.sent();
|
|
319
|
+
return [
|
|
320
|
+
4,
|
|
321
|
+
promise
|
|
322
|
+
];
|
|
323
|
+
case 2:
|
|
324
|
+
expect.apply(void 0, [
|
|
325
|
+
_state.sent()
|
|
326
|
+
]).toEqual({
|
|
327
|
+
test: true
|
|
328
|
+
});
|
|
329
|
+
return [
|
|
330
|
+
2
|
|
331
|
+
];
|
|
332
|
+
}
|
|
333
|
+
});
|
|
334
|
+
})();
|
|
335
|
+
});
|
|
326
336
|
});
|
|
327
337
|
describe('impervaCaptchaEventHandlerFactory', function() {
|
|
328
338
|
var postMessageTemp;
|
|
@@ -243,23 +243,23 @@ function _ts_generator(thisArg, body) {
|
|
|
243
243
|
{
|
|
244
244
|
key: "load",
|
|
245
245
|
value: /** @inheritDoc */ function load(context) {
|
|
246
|
-
var data;
|
|
247
246
|
var _this = this;
|
|
247
|
+
var data;
|
|
248
248
|
return {
|
|
249
249
|
// eslint-disable-next-line no-async-promise-executor -- all await are handled with a try-catch block
|
|
250
250
|
canStart: function() {
|
|
251
|
-
return new Promise(
|
|
252
|
-
|
|
251
|
+
return new Promise(function(resolve) {
|
|
252
|
+
return _async_to_generator(function() {
|
|
253
253
|
var didTimeOut, timer, canStartCondition, canStart, e;
|
|
254
254
|
return _ts_generator(this, function(_state) {
|
|
255
255
|
switch(_state.label){
|
|
256
256
|
case 0:
|
|
257
257
|
didTimeOut = false;
|
|
258
|
-
if (
|
|
258
|
+
if (this.timeout) {
|
|
259
259
|
timer = setTimeout(function() {
|
|
260
260
|
didTimeOut = true;
|
|
261
261
|
resolve(false);
|
|
262
|
-
},
|
|
262
|
+
}, this.timeout);
|
|
263
263
|
}
|
|
264
264
|
_state.label = 1;
|
|
265
265
|
case 1:
|
|
@@ -271,7 +271,7 @@ function _ts_generator(thisArg, body) {
|
|
|
271
271
|
]);
|
|
272
272
|
return [
|
|
273
273
|
4,
|
|
274
|
-
|
|
274
|
+
this.canStartCondition(context)
|
|
275
275
|
];
|
|
276
276
|
case 2:
|
|
277
277
|
canStartCondition = _state.sent();
|
|
@@ -311,19 +311,16 @@ function _ts_generator(thisArg, body) {
|
|
|
311
311
|
];
|
|
312
312
|
}
|
|
313
313
|
});
|
|
314
|
-
});
|
|
315
|
-
|
|
316
|
-
return _ref.apply(this, arguments);
|
|
317
|
-
};
|
|
318
|
-
}());
|
|
314
|
+
}).call(_this);
|
|
315
|
+
});
|
|
319
316
|
},
|
|
320
|
-
transform:
|
|
321
|
-
|
|
317
|
+
transform: function(fetchCall) {
|
|
318
|
+
return _async_to_generator(function() {
|
|
322
319
|
var response, e;
|
|
323
320
|
return _ts_generator(this, function(_state) {
|
|
324
321
|
switch(_state.label){
|
|
325
322
|
case 0:
|
|
326
|
-
if (!
|
|
323
|
+
if (!this.callback) {
|
|
327
324
|
return [
|
|
328
325
|
2,
|
|
329
326
|
fetchCall
|
|
@@ -343,7 +340,7 @@ function _ts_generator(thisArg, body) {
|
|
|
343
340
|
];
|
|
344
341
|
case 2:
|
|
345
342
|
response = _state.sent();
|
|
346
|
-
|
|
343
|
+
this.callback(_object_spread_props(_object_spread({}, context), {
|
|
347
344
|
data: data
|
|
348
345
|
}), fetchCall, response);
|
|
349
346
|
return [
|
|
@@ -352,7 +349,7 @@ function _ts_generator(thisArg, body) {
|
|
|
352
349
|
];
|
|
353
350
|
case 3:
|
|
354
351
|
e = _state.sent();
|
|
355
|
-
|
|
352
|
+
this.callback(_object_spread_props(_object_spread({}, context), {
|
|
356
353
|
data: data
|
|
357
354
|
}), fetchCall, response);
|
|
358
355
|
throw e;
|
|
@@ -362,11 +359,8 @@ function _ts_generator(thisArg, body) {
|
|
|
362
359
|
];
|
|
363
360
|
}
|
|
364
361
|
});
|
|
365
|
-
});
|
|
366
|
-
|
|
367
|
-
return _ref.apply(this, arguments);
|
|
368
|
-
};
|
|
369
|
-
}()
|
|
362
|
+
}).call(_this);
|
|
363
|
+
}
|
|
370
364
|
};
|
|
371
365
|
}
|
|
372
366
|
}
|