-
Notifications
You must be signed in to change notification settings - Fork 24
/
http_client.test.js
60 lines (54 loc) · 1.8 KB
/
http_client.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
const { Browser } = require('./_helper');
const mockServer = require('./mock_server/server');
const { ApifyClient } = require('../src/index');
describe('HttpClient', () => {
let baseUrl;
const browser = new Browser();
beforeAll(async () => {
const server = await mockServer.start();
await browser.start();
baseUrl = `http://localhost:${server.address().port}`;
});
afterAll(async () => {
await Promise.all([
mockServer.close(),
browser.cleanUpBrowser(),
]);
});
let client;
let page;
beforeEach(async () => {
page = await browser.getInjectedPage(baseUrl, { timeoutSecs: 1 });
client = new ApifyClient({
baseUrl,
timeoutSecs: 1,
maxRetries: 0,
requestInterceptors: [(config) => {
config.headers = {};
return config;
}],
});
});
afterEach(async () => {
client = null;
page.close().catch(() => {});
});
test('requests timeout after timeoutSecs', async () => {
const context = { delayMillis: 3000 };
const resourceId = Buffer.from(JSON.stringify(context)).toString('hex');
expect.assertions(2);
try {
await client.actor(resourceId).get();
} catch (err) {
expect(err.message).toMatch('timeout of 1000ms exceeded');
}
try {
const r = await page.evaluate((rId) => client.task(rId).get(), resourceId);
expect(r).toBeDefined();
} catch (err) {
expect(err).toBeInstanceOf(Error);
// this is failing after axios upgrade, the error is returned with a wrong name and message
// expect(err.message).toMatch('timeout of 1000ms exceeded');
}
});
});