inversify-express-utils
Version:
Some utilities for the development of express applications with Inversify
109 lines • 6.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const globals_1 = require("@jest/globals");
const http_status_codes_1 = require("http-status-codes");
const httpResponseMessage_1 = require("../httpResponseMessage");
const results_1 = require("../results");
(0, globals_1.describe)('ActionResults', () => {
(0, globals_1.describe)('OkResult', () => {
(0, globals_1.it)('should respond with an HTTP 200', async () => {
const actionResult = new results_1.OkResult();
const responseMessage = await actionResult.executeAsync();
(0, globals_1.expect)(responseMessage.statusCode).toBe(http_status_codes_1.StatusCodes.OK);
});
});
(0, globals_1.describe)('OkNegotiatedContentResult', () => {
(0, globals_1.it)('should respond with an HTTP 200 with content', async () => {
const content = {
foo: 'bar',
};
const actionResult = new results_1.OkNegotiatedContentResult(content);
const responseMessage = await actionResult.executeAsync();
(0, globals_1.expect)(responseMessage.statusCode).toBe(http_status_codes_1.StatusCodes.OK);
(0, globals_1.expect)(await responseMessage.content.readAsync()).toStrictEqual(content);
});
});
(0, globals_1.describe)('BadRequestResult', () => {
(0, globals_1.it)('should respond with an HTTP 400', async () => {
const actionResult = new results_1.BadRequestResult();
const responseMessage = await actionResult.executeAsync();
(0, globals_1.expect)(responseMessage.statusCode).toBe(http_status_codes_1.StatusCodes.BAD_REQUEST);
});
});
(0, globals_1.describe)('BadRequestErrorMessageResult', () => {
(0, globals_1.it)('should respond with an HTTP 400 and an error message', async () => {
const message = 'uh oh!';
const actionResult = new results_1.BadRequestErrorMessageResult(message);
const responseMessage = await actionResult.executeAsync();
(0, globals_1.expect)(responseMessage.statusCode).toBe(http_status_codes_1.StatusCodes.BAD_REQUEST);
(0, globals_1.expect)(await responseMessage.content.readAsync()).toBe(message);
});
});
(0, globals_1.describe)('ConflictResult', () => {
(0, globals_1.it)('should respond with an HTTP 409', async () => {
const actionResult = new results_1.ConflictResult();
const responseMessage = await actionResult.executeAsync();
(0, globals_1.expect)(responseMessage.statusCode).toBe(http_status_codes_1.StatusCodes.CONFLICT);
});
});
(0, globals_1.describe)('CreatedNegotiatedContentResult', () => {
(0, globals_1.it)('should respond with an HTTP 302 and appropriate headers', async () => {
const uri = 'http://foo/bar';
const content = {
foo: 'bar',
};
const actionResult = new results_1.CreatedNegotiatedContentResult(uri, content);
const responseMessage = await actionResult.executeAsync();
(0, globals_1.expect)(responseMessage.statusCode).toBe(http_status_codes_1.StatusCodes.CREATED);
(0, globals_1.expect)(await responseMessage.content.readAsync()).toBe(JSON.stringify(content));
(0, globals_1.expect)(responseMessage.headers['location']).toBe(uri);
});
});
(0, globals_1.describe)('ExceptionResult', () => {
(0, globals_1.it)('should respond with an HTTP 500 and the error message', async () => {
const error = new Error('foo');
const actionResult = new results_1.ExceptionResult(error);
const responseMessage = await actionResult.executeAsync();
(0, globals_1.expect)(responseMessage.statusCode).toBe(http_status_codes_1.StatusCodes.INTERNAL_SERVER_ERROR);
(0, globals_1.expect)(await responseMessage.content.readAsync()).toBe('Error: foo');
});
});
(0, globals_1.describe)('InternalServerErrorResult', () => {
(0, globals_1.it)('should respond with an HTTP 500', async () => {
const actionResult = new results_1.InternalServerErrorResult();
const responseMessage = await actionResult.executeAsync();
(0, globals_1.expect)(responseMessage.statusCode).toBe(http_status_codes_1.StatusCodes.INTERNAL_SERVER_ERROR);
});
});
(0, globals_1.describe)('NotFoundResult', () => {
(0, globals_1.it)('should respond with an HTTP 404', async () => {
const actionResult = new results_1.NotFoundResult();
const responseMessage = await actionResult.executeAsync();
(0, globals_1.expect)(responseMessage.statusCode).toBe(http_status_codes_1.StatusCodes.NOT_FOUND);
});
});
(0, globals_1.describe)('RedirectResult', () => {
(0, globals_1.it)('should respond with an HTTP 302', async () => {
const uri = 'http://foo/bar';
const actionResult = new results_1.RedirectResult(uri);
const responseMessage = await actionResult.executeAsync();
(0, globals_1.expect)(responseMessage.statusCode).toBe(http_status_codes_1.StatusCodes.MOVED_TEMPORARILY);
(0, globals_1.expect)(responseMessage.headers['location']).toBe(uri);
});
});
(0, globals_1.describe)('ResponseMessageResult', () => {
(0, globals_1.it)('should respond with an HTTP 302', async () => {
const responseMessage = new httpResponseMessage_1.HttpResponseMessage(200);
const actionResult = new results_1.ResponseMessageResult(responseMessage);
(0, globals_1.expect)(await actionResult.executeAsync()).toBe(responseMessage);
});
});
(0, globals_1.describe)('StatusCodeResult', () => {
(0, globals_1.it)('should respond with the specified status code', async () => {
const actionResult = new results_1.StatusCodeResult(417);
const responseMessage = await actionResult.executeAsync();
(0, globals_1.expect)(responseMessage.statusCode).toBe(417);
});
});
});
//# sourceMappingURL=action_result.test.js.map