webrequest/test/test.ts

79 lines
2.0 KiB
TypeScript
Raw Normal View History

2023-07-27 11:59:21 +00:00
import { expect, tap } from '@push.rocks/tapbundle';
2022-03-16 15:23:32 +00:00
import * as webrequest from '../ts/index.js';
2018-12-04 16:35:40 +00:00
2018-12-03 17:35:30 +00:00
// test dependencies
2023-07-09 15:24:52 +00:00
import * as typedserver from '@apiglobal/typedserver';
2018-12-03 17:35:30 +00:00
2023-07-09 15:24:52 +00:00
let testServer: typedserver.servertools.Server;
2018-12-03 17:35:30 +00:00
tap.test('setup test server', async () => {
2023-07-09 15:24:52 +00:00
testServer = new typedserver.servertools.Server({
2018-12-03 17:35:30 +00:00
cors: false,
forceSsl: false,
2020-10-09 10:14:45 +00:00
port: 2345,
2018-12-03 17:35:30 +00:00
});
testServer.addRoute(
'/apiroute1',
2023-07-09 15:24:52 +00:00
new typedserver.servertools.Handler('GET', (req, res) => {
res.status(429);
res.end();
})
);
2018-12-03 17:35:30 +00:00
testServer.addRoute(
'/apiroute2',
2023-07-09 15:24:52 +00:00
new typedserver.servertools.Handler('GET', (req, res) => {
res.status(500);
res.end();
})
);
2018-12-04 16:35:40 +00:00
testServer.addRoute(
'/apiroute3',
2023-07-09 15:24:52 +00:00
new typedserver.servertools.Handler('GET', (req, res) => {
res.status(200);
res.send({
2020-10-09 10:14:45 +00:00
hithere: 'hi',
});
})
);
2018-12-04 16:35:40 +00:00
2019-06-04 13:23:47 +00:00
await testServer.start();
});
2018-12-03 17:35:30 +00:00
2020-10-09 10:14:45 +00:00
tap.test('first test', async (tools) => {
2023-02-12 16:54:00 +00:00
const response = await (
await new webrequest.WebRequest().requestMultiEndpoint(
[
'http://localhost:2345/apiroute1',
'http://localhost:2345/apiroute2',
'http://localhost:2345/apiroute4',
'http://localhost:2345/apiroute3',
],
{
method: 'GET',
}
)
).json();
2018-12-04 16:35:40 +00:00
2019-09-27 18:16:28 +00:00
const response2 = await new webrequest.WebRequest().getJson('http://localhost:2345/apiroute3');
2020-10-15 18:46:21 +00:00
console.log('response 1: ' + JSON.stringify(response));
console.log('response 2: ' + JSON.stringify(response2));
2018-12-04 16:35:40 +00:00
2022-02-10 17:45:22 +00:00
expect(response).toHaveProperty('hithere'); //.to.equal('hi');
expect(response2).toHaveProperty('hithere'); //.to.equal('hi');
});
2018-12-04 16:35:40 +00:00
2022-05-29 18:22:42 +00:00
tap.test('should cache response', async () => {
const webrequestInstance = new webrequest.WebRequest();
const response = await webrequestInstance.getJson('http://localhost:2345/apiroute3', true);
expect(response).toHaveProperty('hithere');
await testServer.stop();
const response2 = await webrequestInstance.getJson('http://localhost:2345/apiroute3', true);
expect(response2).toHaveProperty('hithere');
2023-02-12 16:54:00 +00:00
});
2018-11-30 16:12:48 +00:00
tap.start();