fix(core): update

This commit is contained in:
Philipp Kunz 2019-09-01 13:17:21 +02:00
parent 51219303a9
commit db474ebd8a
2 changed files with 34 additions and 5 deletions

View File

@ -4,6 +4,25 @@ import * as smartexpress from '@pushrocks/smartexpress';
import * as typedrequest from '../ts/index'; import * as typedrequest from '../ts/index';
let testServer: smartexpress.Server; let testServer: smartexpress.Server;
let testTypedHandler: typedrequest.TypedHandler<ITestReqRes>;
interface ITestReqRes {
method: 'hi';
request: {
name: string;
};
response: {
surname: string;
};
}
tap.test('should create a typedHandler', async () => {
testTypedHandler = new typedrequest.TypedHandler<ITestReqRes>('hi', async (reqArg) => {
return {
surname: 'wow'
};
});
});
tap.test('should spawn a server to test with', async () => { tap.test('should spawn a server to test with', async () => {
testServer = new smartexpress.Server({ testServer = new smartexpress.Server({
@ -14,13 +33,24 @@ tap.test('should spawn a server to test with', async () => {
}); });
tap.test('should define a testHandler', async () => { tap.test('should define a testHandler', async () => {
testServer.addRoute('/testroute', new smartexpress.Handler('POST', async (req, res) => {
console.log(req.body);
res.json(await testTypedHandler.addResponse(req.body));
}));
}); });
tap.test('should start the server', async () => { tap.test('should start the server', async () => {
await testServer.start(); await testServer.start();
}); });
tap.test('should fire a request', async () => {
const typedRequest = new typedrequest.TypedRequest<ITestReqRes>('http://localhost:3000/testroute', 'hi');
const response = await typedRequest.fire({
name: 'really'
});
expect(response.surname).to.equal('wow');
});
tap.test('should end the server', async () => { tap.test('should end the server', async () => {
await testServer.stop(); await testServer.stop();
}); });

View File

@ -14,13 +14,12 @@ export class TypedRequest<T extends plugins.typedRequestInterfaces.ITypedRequest
* firest the request * firest the request
*/ */
public async fire(fireArg: T['request']): Promise<T['response']> { public async fire(fireArg: T['request']): Promise<T['response']> {
const response = await plugins.smartrequest.request(this.urlEndPoint, { const response = await plugins.smartrequest.postJson(this.urlEndPoint, {
method: 'POST', requestBody: {
requestBody: JSON.stringify({
method: this.method, method: this.method,
request: fireArg, request: fireArg,
response: null response: null
}) }
}); });
return response.body.response; return response.body.response;
} }