UNPKG

@webda/core

Version:

Expose API with Lambda

77 lines 3.15 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; import { suite, test } from "@testdeck/mocha"; import * as assert from "assert"; import { Readable } from "stream"; import { HttpContext } from "./httpcontext.js"; export class FakeReadable extends Readable { _read() { } } let HttpContextTest = class HttpContextTest { lowerCaseHeader() { let ctx = new HttpContext("test.webda.io", "GET", "/test", "http", 80, { "X-Test": "weBda", other: ["head1", "head2"], cookie: ["", ""] }); assert.strictEqual(ctx.getHeader("X-Test"), "weBda"); assert.strictEqual(ctx.getHeader("X-Test"), ctx.getHeader("x-test")); assert.strictEqual(ctx.getPort(), ""); assert.strictEqual(ctx.getUniqueHeader("other"), "head2"); } async stream() { let ctx = new HttpContext("test.webda.io", "GET", "/test", "http", 80, { "X-Test": "weBda" }); ctx.setBody("Test"); // Next line is just for cov ctx.setClientIp("127.0.0.1").getClientIp(); let stream = ctx.getRawStream(); ctx.setBody(stream); ctx.getRawStream(); assert.strictEqual(await ctx.getRawBodyAsString(), "Test"); // @ts-ignore ctx.getHeaders()["content-type"] = "application/json"; assert.strictEqual(await ctx.getRawBodyAsString(), "Test"); // @ts-ignore ctx.getHeaders()["content-type"] = "application/json; charset=iso-8859-1"; await assert.rejects(() => ctx.getRawBodyAsString(), /Only UTF-8 is currently managed/); } async oversize() { let ctx = new HttpContext("test.webda.io", "GET", "/test", "http", 80, { "X-Test": "weBda" }); ctx.setBody("Test".repeat(1024)); let stream = ctx.getRawStream(); ctx.setBody(stream); await assert.rejects(() => ctx.getRawBody(128), /Request oversized/); } async timeout() { let ctx = new HttpContext("test.webda.io", "GET", "/test", "http", 80, { "X-Test": "weBda" }); let str = new FakeReadable(); ctx.setBody(str); await assert.rejects(() => ctx.getRawBody(undefined, 100), /Request timeout/); } }; __decorate([ test ], HttpContextTest.prototype, "lowerCaseHeader", null); __decorate([ test ], HttpContextTest.prototype, "stream", null); __decorate([ test ], HttpContextTest.prototype, "oversize", null); __decorate([ test ], HttpContextTest.prototype, "timeout", null); HttpContextTest = __decorate([ suite ], HttpContextTest); //# sourceMappingURL=httpcontext.spec.js.map