From dac402b0fa26c7fcd647a219f9a7ec3c3c90efbe Mon Sep 17 00:00:00 2001 From: jlp-craigmorten Date: Sun, 18 May 2025 20:06:31 +0100 Subject: [PATCH] feat: Deno v2 --- .github/workflows/publish-docs.yml | 2 +- .github/workflows/publish-egg.yml | 4 +- .github/workflows/test.yml | 4 +- Makefile | 7 +- README.md | 71 +- deps.ts | 7 +- docs/assets/js/search.json | 2 +- docs/classes/_test_.test.html | 171 +-- docs/index.html | 4 +- docs/interfaces/_superdeno_.superdeno.html | 52 +- docs/interfaces/_test_.httperror.html | 16 +- docs/interfaces/_test_.irequest.html | 98 +- docs/interfaces/_test_.iresponse.html | 56 +- .../_types_.expresslistenerlike.html | 2 +- .../interfaces/_types_.expressserverlike.html | 8 +- docs/interfaces/_types_.legacyserverlike.html | 4 +- docs/interfaces/_types_.listenerlike.html | 2 +- docs/interfaces/_types_.nativeserverlike.html | 6 +- .../_types_.requesthandlerlike.html | 2 +- docs/modules/_close_.html | 2 +- docs/modules/_superagent_.html | 4 +- docs/modules/_superdeno_.html | 4 +- docs/modules/_test_.html | 36 +- docs/modules/_types_.html | 2 +- docs/modules/_utils_.html | 16 +- egg.json | 2 +- src/superdeno.ts | 57 +- src/test.ts | 33 +- src/types.ts | 11 +- src/utils.ts | 25 +- test/deps.ts | 16 +- test/form-data.test.ts | 35 +- test/redirects-other-host.test.ts | 78 +- test/redirects.test.ts | 28 +- test/superdeno.express.test.ts | 106 +- test/superdeno.native.test.ts | 67 ++ test/superdeno.oak.test.ts | 16 +- test/superdeno.opine.test.ts | 985 ------------------ test/superdeno.std.test.ts | 38 - test/superdeno.std_legacy.test.ts | 42 - test/utils.ts | 3 +- version.ts | 4 +- 42 files changed, 579 insertions(+), 1549 deletions(-) create mode 100644 test/superdeno.native.test.ts delete mode 100644 test/superdeno.opine.test.ts delete mode 100644 test/superdeno.std.test.ts delete mode 100644 test/superdeno.std_legacy.test.ts diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 4f89e0b..cf505b6 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -19,7 +19,7 @@ jobs: - name: Use Deno uses: denolib/setup-deno@v2 with: - deno-version: 1.40.2 + deno-version: 2.3.3 - run: make typedoc - run: make ci - name: Publish Updated Type Docs diff --git a/.github/workflows/publish-egg.yml b/.github/workflows/publish-egg.yml index 60baf6a..ad8a4f2 100644 --- a/.github/workflows/publish-egg.yml +++ b/.github/workflows/publish-egg.yml @@ -11,8 +11,8 @@ jobs: - uses: actions/checkout@v2 - uses: denolib/setup-deno@v2 with: - deno-version: 1.40.2 - - run: deno install -A -f --unstable -n eggs https://x.nest.land/eggs@0.3.10/eggs.ts + deno-version: 2.3.3 + - run: deno install -A -f --global -n eggs https://x.nest.land/eggs@0.3.10/eggs.ts - run: | export PATH="/home/runner/.deno/bin:$PATH" eggs link ${NEST_LAND_KEY} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5430b14..fe50b9c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,7 +11,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest] - deno-version: [1.40.2] + deno-version: [2.3.3] runs-on: ${{ matrix.os }} @@ -27,7 +27,7 @@ jobs: strategy: matrix: os: [windows-latest] - deno-version: [1.40.2] + deno-version: [2.3.3] runs-on: ${{ matrix.os }} diff --git a/Makefile b/Makefile index 9422de7..eb38d04 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ FILES_TO_FORMAT = ./src ./test ./deps.ts ./mod.ts ./version.ts build: - @deno run --reload mod.ts + @deno run --allow-import --allow-env --allow-sys --allow-read --reload mod.ts ci: @make fmt-check @@ -15,7 +15,7 @@ deps: @npm install -g typescript@4 typedoc@0.19.2 doc: - @deno doc ./mod.ts + @deno doc --allow-import ./mod.ts fmt: @deno fmt ${FILES_TO_FORMAT} @@ -32,8 +32,7 @@ precommit: @make fmt test: - @deno test --allow-net --allow-read --allow-env --no-check --doc - @deno test --allow-net --allow-read --allow-env --no-check --doc --unstable + @deno test --allow-import --allow-net --allow-read --allow-env --allow-sys --no-check typedoc: @rm -rf docs diff --git a/README.md b/README.md index 3ae6c55..2f1766e 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ HTTP assertions for Deno made easy via SuperDeno latest /x/ version - Minimum supported Deno version + Minimum supported Deno version SuperDeno dependency count SuperDeno dependency outdatedness SuperDeno cached size @@ -53,15 +53,31 @@ SuperTest not working for you? [Raise an issue on Deno](https://github.com/denol ```ts import { superdeno } from "https://deno.land/x/superdeno/mod.ts"; -import { opine } from "https://deno.land/x/opine@2.3.4/mod.ts"; -const app = opine(); +const USER_ROUTE = new URLPattern({ pathname: "/user" }); -app.get("/user", (req, res) => { - res.setStatus(200).json({ name: "Deno" }); -}); +function handler(req: Request): Response { + const match = USER_ROUTE.exec(req.url); + + if (match) { + const body = JSON.stringify({ name: "Deno" }); + + return new Response(body, { + status: 200, + headers: { + "content-type": "application/json; charset=utf-8", + }, + }); + } + + return new Response("Not found", { + status: 404, + }); +} -superdeno(app) +const server = Deno.serve(handler); + +superdeno(server) .get("/user") .expect("Content-Type", /json/) .expect("Content-Length", "15") @@ -96,7 +112,7 @@ import { superdeno } from "https://deno.land/x/superdeno/mod.ts"; SuperDeno is also available on [nest.land](https://nest.land/package/superdeno), a package registry for Deno on the Blockchain. -> Note: All examples in this README are using the unversioned form of the import URL. In production you should always use the versioned import form such as `https://deno.land/x/superdeno@4.9.0/mod.ts`. +> Note: All examples in this README are using the unversioned form of the import URL. In production you should always use the versioned import form such as `https://deno.land/x/superdeno@5.0.0/mod.ts`. ## Examples @@ -123,40 +139,13 @@ Deno.test("GET /user responds with json", async () => { }); ``` -Here's an example of SuperDeno working with the Opine web framework: - -```ts -import { superdeno } from "https://deno.land/x/superdeno/mod.ts"; -import { opine } from "https://deno.land/x/opine@2.3.4/mod.ts"; -import { expect } from "https://deno.land/x/expect@v0.4.0/mod.ts"; - -const app = opine(); - -app.get("/", (req, res) => { - res.send("Hello Deno!"); -}); - -Deno.test("it should support regular expressions", async () => { - await superdeno(app) - .get("/") - .expect("Content-Type", /^application/) - .catch((err) => { - expect(err.message).toEqual( - 'expected "Content-Type" matching /^application/, got "text/html; charset=utf-8"' - ); - }); -}); -``` - -See more examples in the [Opine test suite](./test/superdeno.opine.test.ts). - Here's an example of SuperDeno working with the Express web framework: ```ts import { superdeno } from "https://deno.land/x/superdeno/mod.ts"; -// @deno-types="npm:@types/express@^4.17" -import express from "npm:express@4.18.2"; -import { expect } from "https://deno.land/x/expect@v0.4.0/mod.ts"; +// @deno-types="npm:@types/express@^4.17.22" +export { default as express } from "npm:express@4.21.2"; +export { expect } from "https://deno.land/x/expect@v0.4.2/mod.ts"; Deno.test("it should support regular expressions", async () => { const app = express(); @@ -182,7 +171,7 @@ Here's an example of SuperDeno working with the Oak web framework: ```ts import { superdeno } from "https://deno.land/x/superdeno/mod.ts"; -import { Application, Router } from "https://deno.land/x/oak@v12.6.2/mod.ts"; +import { Application, Router } from "jsr:@oak/oak@^17.1.4"; const router = new Router(); router.get("/", (ctx) => { @@ -193,7 +182,7 @@ const app = new Application(); app.use(router.routes()); app.use(router.allowedMethods()); -Deno.test("it should support the Oak framework", () => { +Deno.test("it should support the Oak framework", async () => { const controller = new AbortController(); const { signal } = controller; @@ -224,8 +213,8 @@ are making use of the `app.handle()` method (for example for serverless apps) then you can write slightly less verbose tests for Oak: ```ts -import { Application, Router } from "https://deno.land/x/oak@v12.6.2/mod.ts"; import { superdeno } from "https://deno.land/x/superdeno/mod.ts"; +import { Application, Router } from "jsr:@oak/oak@^17.1.4"; const router = new Router(); diff --git a/deps.ts b/deps.ts index 7b7a725..98150dc 100644 --- a/deps.ts +++ b/deps.ts @@ -1,10 +1,7 @@ -export { Server } from "https://deno.land/std@0.213.0/http/server.ts"; -export { STATUS_TEXT } from "https://deno.land/std@0.213.0/http/status.ts"; -export type { StatusCode } from "https://deno.land/std@0.213.0/http/status.ts"; -export { assertEquals } from "https://deno.land/std@0.213.0/assert/mod.ts"; +export { STATUS_TEXT, type StatusCode } from "jsr:@std/http@^1.0.16"; +export { assertEquals } from "jsr:@std/assert@^1.0.13"; export { methods } from "https://deno.land/x/opine@2.3.4/src/methods.ts"; export { mergeDescriptors } from "https://deno.land/x/opine@2.3.4/src/utils/mergeDescriptors.ts"; export { getFreePort } from "https://deno.land/x/free_port@v1.2.0/mod.ts"; - // TODO: upgrade to v8 export { default as superagent } from "https://jspm.dev/superagent@6.1.0"; diff --git a/docs/assets/js/search.json b/docs/assets/js/search.json index 9f0b8ca..87f8ac1 100644 --- a/docs/assets/js/search.json +++ b/docs/assets/js/search.json @@ -1 +1 @@ -{"kinds":{"1":"Module","32":"Variable","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","4194304":"Type alias"},"rows":[{"id":0,"kind":1,"name":"\"close\"","url":"modules/_close_.html","classes":"tsd-kind-module"},{"id":1,"kind":64,"name":"close","url":"modules/_close_.html#close","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-private","parent":"\"close\""},{"id":2,"kind":1,"name":"\"superagent\"","url":"modules/_superagent_.html","classes":"tsd-kind-module"},{"id":3,"kind":64,"name":"getXHR","url":"modules/_superagent_.html#getxhr","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"superagent\""},{"id":4,"kind":32,"name":"superagent","url":"modules/_superagent_.html#superagent","classes":"tsd-kind-variable tsd-parent-kind-module","parent":"\"superagent\""},{"id":5,"kind":1,"name":"\"superdeno\"","url":"modules/_superdeno_.html","classes":"tsd-kind-module"},{"id":6,"kind":256,"name":"SuperDeno","url":"interfaces/_superdeno_.superdeno.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"superdeno\""},{"id":7,"kind":2048,"name":"get","url":"interfaces/_superdeno_.superdeno.html#get","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":8,"kind":2048,"name":"post","url":"interfaces/_superdeno_.superdeno.html#post","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":9,"kind":2048,"name":"put","url":"interfaces/_superdeno_.superdeno.html#put","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":10,"kind":2048,"name":"delete","url":"interfaces/_superdeno_.superdeno.html#delete","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":11,"kind":2048,"name":"patch","url":"interfaces/_superdeno_.superdeno.html#patch","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":12,"kind":2048,"name":"options","url":"interfaces/_superdeno_.superdeno.html#options","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":13,"kind":2048,"name":"head","url":"interfaces/_superdeno_.superdeno.html#head","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":14,"kind":2048,"name":"checkout","url":"interfaces/_superdeno_.superdeno.html#checkout","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":15,"kind":2048,"name":"connect","url":"interfaces/_superdeno_.superdeno.html#connect","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":16,"kind":2048,"name":"copy","url":"interfaces/_superdeno_.superdeno.html#copy","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":17,"kind":2048,"name":"lock","url":"interfaces/_superdeno_.superdeno.html#lock","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":18,"kind":2048,"name":"merge","url":"interfaces/_superdeno_.superdeno.html#merge","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":19,"kind":2048,"name":"mkactivity","url":"interfaces/_superdeno_.superdeno.html#mkactivity","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":20,"kind":2048,"name":"mkcol","url":"interfaces/_superdeno_.superdeno.html#mkcol","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":21,"kind":2048,"name":"move","url":"interfaces/_superdeno_.superdeno.html#move","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":22,"kind":2048,"name":"m-search","url":"interfaces/_superdeno_.superdeno.html#m_search","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":23,"kind":2048,"name":"notify","url":"interfaces/_superdeno_.superdeno.html#notify","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":24,"kind":2048,"name":"propfind","url":"interfaces/_superdeno_.superdeno.html#propfind","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":25,"kind":2048,"name":"proppatch","url":"interfaces/_superdeno_.superdeno.html#proppatch","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":26,"kind":2048,"name":"purge","url":"interfaces/_superdeno_.superdeno.html#purge","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":27,"kind":2048,"name":"report","url":"interfaces/_superdeno_.superdeno.html#report","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":28,"kind":2048,"name":"search","url":"interfaces/_superdeno_.superdeno.html#search","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":29,"kind":2048,"name":"subscribe","url":"interfaces/_superdeno_.superdeno.html#subscribe","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":30,"kind":2048,"name":"trace","url":"interfaces/_superdeno_.superdeno.html#trace","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":31,"kind":2048,"name":"unlock","url":"interfaces/_superdeno_.superdeno.html#unlock","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":32,"kind":2048,"name":"unsubscribe","url":"interfaces/_superdeno_.superdeno.html#unsubscribe","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":33,"kind":64,"name":"startManagedServer","url":"modules/_superdeno_.html#startmanagedserver","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"superdeno\""},{"id":34,"kind":64,"name":"superdeno","url":"modules/_superdeno_.html#superdeno-1","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"superdeno\""},{"id":35,"kind":1,"name":"\"test\"","url":"modules/_test_.html","classes":"tsd-kind-module"},{"id":36,"kind":256,"name":"HTTPError","url":"interfaces/_test_.httperror.html","classes":"tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":37,"kind":1024,"name":"status","url":"interfaces/_test_.httperror.html#status","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported","parent":"\"test\".HTTPError"},{"id":38,"kind":1024,"name":"text","url":"interfaces/_test_.httperror.html#text","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported","parent":"\"test\".HTTPError"},{"id":39,"kind":1024,"name":"method","url":"interfaces/_test_.httperror.html#method","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported","parent":"\"test\".HTTPError"},{"id":40,"kind":1024,"name":"path","url":"interfaces/_test_.httperror.html#path","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported","parent":"\"test\".HTTPError"},{"id":41,"kind":1024,"name":"name","url":"interfaces/_test_.httperror.html#name","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited tsd-is-not-exported","parent":"\"test\".HTTPError"},{"id":42,"kind":1024,"name":"message","url":"interfaces/_test_.httperror.html#message","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited tsd-is-not-exported","parent":"\"test\".HTTPError"},{"id":43,"kind":1024,"name":"stack","url":"interfaces/_test_.httperror.html#stack","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited tsd-is-not-exported","parent":"\"test\".HTTPError"},{"id":44,"kind":1024,"name":"Error","url":"interfaces/_test_.httperror.html#error","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported","parent":"\"test\".HTTPError"},{"id":45,"kind":256,"name":"XMLHttpRequest","url":"interfaces/_test_.xmlhttprequest.html","classes":"tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":46,"kind":256,"name":"IResponse","url":"interfaces/_test_.iresponse.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"test\""},{"id":47,"kind":1024,"name":"accepted","url":"interfaces/_test_.iresponse.html#accepted","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":48,"kind":1024,"name":"badRequest","url":"interfaces/_test_.iresponse.html#badrequest","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":49,"kind":1024,"name":"body","url":"interfaces/_test_.iresponse.html#body","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":50,"kind":1024,"name":"charset","url":"interfaces/_test_.iresponse.html#charset","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":51,"kind":1024,"name":"clientError","url":"interfaces/_test_.iresponse.html#clienterror","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":52,"kind":1024,"name":"error","url":"interfaces/_test_.iresponse.html#error","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":53,"kind":1024,"name":"files","url":"interfaces/_test_.iresponse.html#files","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":54,"kind":1024,"name":"forbidden","url":"interfaces/_test_.iresponse.html#forbidden","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":55,"kind":2048,"name":"get","url":"interfaces/_test_.iresponse.html#get","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":56,"kind":1024,"name":"header","url":"interfaces/_test_.iresponse.html#header","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":57,"kind":1024,"name":"headers","url":"interfaces/_test_.iresponse.html#headers","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":58,"kind":1024,"name":"info","url":"interfaces/_test_.iresponse.html#info","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":59,"kind":1024,"name":"links","url":"interfaces/_test_.iresponse.html#links","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":60,"kind":1024,"name":"noContent","url":"interfaces/_test_.iresponse.html#nocontent","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":61,"kind":1024,"name":"notAcceptable","url":"interfaces/_test_.iresponse.html#notacceptable","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":62,"kind":1024,"name":"notFound","url":"interfaces/_test_.iresponse.html#notfound","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":63,"kind":1024,"name":"ok","url":"interfaces/_test_.iresponse.html#ok","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":64,"kind":1024,"name":"redirect","url":"interfaces/_test_.iresponse.html#redirect","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":65,"kind":1024,"name":"serverError","url":"interfaces/_test_.iresponse.html#servererror","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":66,"kind":1024,"name":"status","url":"interfaces/_test_.iresponse.html#status","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":67,"kind":1024,"name":"statusCode","url":"interfaces/_test_.iresponse.html#statuscode","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":68,"kind":1024,"name":"statusType","url":"interfaces/_test_.iresponse.html#statustype","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":69,"kind":1024,"name":"statusText","url":"interfaces/_test_.iresponse.html#statustext","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":70,"kind":1024,"name":"text","url":"interfaces/_test_.iresponse.html#text","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":71,"kind":1024,"name":"type","url":"interfaces/_test_.iresponse.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":72,"kind":1024,"name":"unauthorized","url":"interfaces/_test_.iresponse.html#unauthorized","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":73,"kind":1024,"name":"xhr","url":"interfaces/_test_.iresponse.html#xhr","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":74,"kind":1024,"name":"redirects","url":"interfaces/_test_.iresponse.html#redirects","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":75,"kind":256,"name":"IRequest","url":"interfaces/_test_.irequest.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"test\""},{"id":76,"kind":512,"name":"constructor","url":"interfaces/_test_.irequest.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":77,"kind":2048,"name":"agent","url":"interfaces/_test_.irequest.html#agent","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":78,"kind":1024,"name":"cookies","url":"interfaces/_test_.irequest.html#cookies","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":79,"kind":1024,"name":"method","url":"interfaces/_test_.irequest.html#method","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":80,"kind":1024,"name":"url","url":"interfaces/_test_.irequest.html#url","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":81,"kind":2048,"name":"abort","url":"interfaces/_test_.irequest.html#abort","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":82,"kind":2048,"name":"accept","url":"interfaces/_test_.irequest.html#accept","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":83,"kind":2048,"name":"attach","url":"interfaces/_test_.irequest.html#attach","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":84,"kind":2048,"name":"auth","url":"interfaces/_test_.irequest.html#auth","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":85,"kind":2048,"name":"buffer","url":"interfaces/_test_.irequest.html#buffer","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":86,"kind":2048,"name":"ca","url":"interfaces/_test_.irequest.html#ca","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":87,"kind":2048,"name":"cert","url":"interfaces/_test_.irequest.html#cert","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":88,"kind":2048,"name":"clearTimeout","url":"interfaces/_test_.irequest.html#cleartimeout","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":89,"kind":2048,"name":"disableTLSCerts","url":"interfaces/_test_.irequest.html#disabletlscerts","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":90,"kind":2048,"name":"end","url":"interfaces/_test_.irequest.html#end","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":91,"kind":2048,"name":"field","url":"interfaces/_test_.irequest.html#field","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":92,"kind":2048,"name":"get","url":"interfaces/_test_.irequest.html#get","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":93,"kind":2048,"name":"http2","url":"interfaces/_test_.irequest.html#http2","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":94,"kind":2048,"name":"key","url":"interfaces/_test_.irequest.html#key","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":95,"kind":2048,"name":"ok","url":"interfaces/_test_.irequest.html#ok","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":96,"kind":2048,"name":"on","url":"interfaces/_test_.irequest.html#on","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":97,"kind":2048,"name":"parse","url":"interfaces/_test_.irequest.html#parse","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":98,"kind":2048,"name":"part","url":"interfaces/_test_.irequest.html#part","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":99,"kind":2048,"name":"pfx","url":"interfaces/_test_.irequest.html#pfx","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":100,"kind":2048,"name":"pipe","url":"interfaces/_test_.irequest.html#pipe","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":101,"kind":2048,"name":"query","url":"interfaces/_test_.irequest.html#query","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":102,"kind":2048,"name":"redirects","url":"interfaces/_test_.irequest.html#redirects","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":103,"kind":2048,"name":"responseType","url":"interfaces/_test_.irequest.html#responsetype","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":104,"kind":2048,"name":"retry","url":"interfaces/_test_.irequest.html#retry","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":105,"kind":2048,"name":"send","url":"interfaces/_test_.irequest.html#send","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":106,"kind":2048,"name":"serialize","url":"interfaces/_test_.irequest.html#serialize","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":107,"kind":2048,"name":"set","url":"interfaces/_test_.irequest.html#set","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":108,"kind":2048,"name":"timeout","url":"interfaces/_test_.irequest.html#timeout","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":109,"kind":2048,"name":"trustLocalhost","url":"interfaces/_test_.irequest.html#trustlocalhost","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":110,"kind":2048,"name":"type","url":"interfaces/_test_.irequest.html#type","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":111,"kind":2048,"name":"unset","url":"interfaces/_test_.irequest.html#unset","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":112,"kind":2048,"name":"use","url":"interfaces/_test_.irequest.html#use","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":113,"kind":2048,"name":"withCredentials","url":"interfaces/_test_.irequest.html#withcredentials","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":114,"kind":2048,"name":"write","url":"interfaces/_test_.irequest.html#write","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":115,"kind":2048,"name":"maxResponseSize","url":"interfaces/_test_.irequest.html#maxresponsesize","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":116,"kind":2048,"name":"then","url":"interfaces/_test_.irequest.html#then","classes":"tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter tsd-is-inherited","parent":"\"test\".IRequest"},{"id":117,"kind":2048,"name":"catch","url":"interfaces/_test_.irequest.html#catch","classes":"tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter tsd-is-inherited","parent":"\"test\".IRequest"},{"id":118,"kind":128,"name":"Test","url":"classes/_test_.test.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"\"test\""},{"id":119,"kind":1024,"name":"#asserts","url":"classes/_test_.test.html#_asserts","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":120,"kind":1024,"name":"#redirects","url":"classes/_test_.test.html#_redirects","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":121,"kind":1024,"name":"#redirectList","url":"classes/_test_.test.html#_redirectlist","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":122,"kind":1024,"name":"#server","url":"classes/_test_.test.html#_server","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":123,"kind":1024,"name":"#serverSetupPromise","url":"classes/_test_.test.html#_serversetuppromise","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":124,"kind":1024,"name":"#urlSetupPromise","url":"classes/_test_.test.html#_urlsetuppromise","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":125,"kind":1024,"name":"app","url":"classes/_test_.test.html#app","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"test\".Test"},{"id":126,"kind":1024,"name":"url","url":"classes/_test_.test.html#url","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"\"test\".Test"},{"id":127,"kind":512,"name":"constructor","url":"classes/_test_.test.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"\"test\".Test"},{"id":128,"kind":2048,"name":"#setServerAddress","url":"classes/_test_.test.html#_setserveraddress","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":129,"kind":2048,"name":"expect","url":"classes/_test_.test.html#expect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"test\".Test"},{"id":130,"kind":2048,"name":"#redirect","url":"classes/_test_.test.html#_redirect","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":131,"kind":2048,"name":"end","url":"classes/_test_.test.html#end","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"\"test\".Test"},{"id":132,"kind":2048,"name":"#assert","url":"classes/_test_.test.html#_assert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":133,"kind":2048,"name":"#assertBody","url":"classes/_test_.test.html#_assertbody","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":134,"kind":2048,"name":"#assertHeader","url":"classes/_test_.test.html#_assertheader","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":135,"kind":2048,"name":"#assertStatus","url":"classes/_test_.test.html#_assertstatus","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":136,"kind":2048,"name":"#assertFunction","url":"classes/_test_.test.html#_assertfunction","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":137,"kind":2048,"name":"agent","url":"classes/_test_.test.html#agent","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":138,"kind":1024,"name":"cookies","url":"classes/_test_.test.html#cookies","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":139,"kind":1024,"name":"method","url":"classes/_test_.test.html#method","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":140,"kind":2048,"name":"abort","url":"classes/_test_.test.html#abort","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":141,"kind":2048,"name":"accept","url":"classes/_test_.test.html#accept","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":142,"kind":2048,"name":"attach","url":"classes/_test_.test.html#attach","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":143,"kind":2048,"name":"auth","url":"classes/_test_.test.html#auth","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":144,"kind":2048,"name":"buffer","url":"classes/_test_.test.html#buffer","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":145,"kind":2048,"name":"ca","url":"classes/_test_.test.html#ca","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":146,"kind":2048,"name":"cert","url":"classes/_test_.test.html#cert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":147,"kind":2048,"name":"clearTimeout","url":"classes/_test_.test.html#cleartimeout","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":148,"kind":2048,"name":"disableTLSCerts","url":"classes/_test_.test.html#disabletlscerts","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":149,"kind":2048,"name":"field","url":"classes/_test_.test.html#field","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":150,"kind":2048,"name":"get","url":"classes/_test_.test.html#get","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":151,"kind":2048,"name":"http2","url":"classes/_test_.test.html#http2","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":152,"kind":2048,"name":"key","url":"classes/_test_.test.html#key","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":153,"kind":2048,"name":"ok","url":"classes/_test_.test.html#ok","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":154,"kind":2048,"name":"on","url":"classes/_test_.test.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":155,"kind":2048,"name":"parse","url":"classes/_test_.test.html#parse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":156,"kind":2048,"name":"part","url":"classes/_test_.test.html#part","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":157,"kind":2048,"name":"pfx","url":"classes/_test_.test.html#pfx","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":158,"kind":2048,"name":"pipe","url":"classes/_test_.test.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":159,"kind":2048,"name":"query","url":"classes/_test_.test.html#query","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":160,"kind":2048,"name":"redirects","url":"classes/_test_.test.html#redirects","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":161,"kind":2048,"name":"responseType","url":"classes/_test_.test.html#responsetype","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":162,"kind":2048,"name":"retry","url":"classes/_test_.test.html#retry","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":163,"kind":2048,"name":"send","url":"classes/_test_.test.html#send","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":164,"kind":2048,"name":"serialize","url":"classes/_test_.test.html#serialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":165,"kind":2048,"name":"set","url":"classes/_test_.test.html#set","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":166,"kind":2048,"name":"timeout","url":"classes/_test_.test.html#timeout","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":167,"kind":2048,"name":"trustLocalhost","url":"classes/_test_.test.html#trustlocalhost","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":168,"kind":2048,"name":"type","url":"classes/_test_.test.html#type","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":169,"kind":2048,"name":"unset","url":"classes/_test_.test.html#unset","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":170,"kind":2048,"name":"use","url":"classes/_test_.test.html#use","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":171,"kind":2048,"name":"withCredentials","url":"classes/_test_.test.html#withcredentials","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":172,"kind":2048,"name":"write","url":"classes/_test_.test.html#write","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":173,"kind":2048,"name":"maxResponseSize","url":"classes/_test_.test.html#maxresponsesize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":174,"kind":2048,"name":"then","url":"classes/_test_.test.html#then","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"\"test\".Test"},{"id":175,"kind":2048,"name":"catch","url":"classes/_test_.test.html#catch","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"\"test\".Test"},{"id":176,"kind":64,"name":"random","url":"modules/_test_.html#random","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"test\""},{"id":177,"kind":4194304,"name":"ExpectChecker","url":"modules/_test_.html#expectchecker","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":178,"kind":65536,"name":"__type","url":"modules/_test_.html#expectchecker.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"test\".ExpectChecker"},{"id":179,"kind":4194304,"name":"CallbackHandler","url":"modules/_test_.html#callbackhandler","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":180,"kind":65536,"name":"__type","url":"modules/_test_.html#callbackhandler.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"test\".CallbackHandler"},{"id":181,"kind":4194304,"name":"Serializer","url":"modules/_test_.html#serializer","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":182,"kind":65536,"name":"__type","url":"modules/_test_.html#serializer.__type-5","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"test\".Serializer"},{"id":183,"kind":4194304,"name":"Parser","url":"modules/_test_.html#parser","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":184,"kind":65536,"name":"__type","url":"modules/_test_.html#parser.__type-3","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"test\".Parser"},{"id":185,"kind":4194304,"name":"MultipartValueSingle","url":"modules/_test_.html#multipartvaluesingle","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":186,"kind":4194304,"name":"MultipartValue","url":"modules/_test_.html#multipartvalue","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":187,"kind":4194304,"name":"HeaderValue","url":"modules/_test_.html#headervalue","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":188,"kind":4194304,"name":"Header","url":"modules/_test_.html#header","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":189,"kind":65536,"name":"__type","url":"modules/_test_.html#header.__type-2","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"test\".Header"},{"id":190,"kind":4194304,"name":"Plugin","url":"modules/_test_.html#plugin","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":191,"kind":65536,"name":"__type","url":"modules/_test_.html#plugin.__type-4","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"test\".Plugin"},{"id":192,"kind":32,"name":"SHAM_SYMBOL","url":"modules/_test_.html#sham_symbol","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":193,"kind":64,"name":"completeXhrPromises","url":"modules/_test_.html#completexhrpromises","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-private tsd-is-not-exported","parent":"\"test\""},{"id":194,"kind":32,"name":"SuperRequest","url":"modules/_test_.html#superrequest","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":195,"kind":64,"name":"error","url":"modules/_test_.html#error","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-private tsd-is-not-exported","parent":"\"test\""},{"id":196,"kind":64,"name":"isRedirect","url":"modules/_test_.html#isredirect","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-private tsd-is-not-exported","parent":"\"test\""},{"id":197,"kind":64,"name":"cleanHeader","url":"modules/_test_.html#cleanheader","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-private tsd-is-not-exported","parent":"\"test\""},{"id":198,"kind":64,"name":"initHeaders","url":"modules/_test_.html#initheaders","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-private tsd-is-not-exported","parent":"\"test\""},{"id":199,"kind":1,"name":"\"types\"","url":"modules/_types_.html","classes":"tsd-kind-module"},{"id":200,"kind":256,"name":"RequestHandlerLike","url":"interfaces/_types_.requesthandlerlike.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":201,"kind":256,"name":"LegacyServerLike","url":"interfaces/_types_.legacyserverlike.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":202,"kind":1024,"name":"listener","url":"interfaces/_types_.legacyserverlike.html#listener","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".LegacyServerLike"},{"id":203,"kind":2048,"name":"close","url":"interfaces/_types_.legacyserverlike.html#close","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"types\".LegacyServerLike"},{"id":204,"kind":256,"name":"NativeServerLike","url":"interfaces/_types_.nativeserverlike.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":205,"kind":1024,"name":"addrs","url":"interfaces/_types_.nativeserverlike.html#addrs","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".NativeServerLike"},{"id":206,"kind":2048,"name":"listenAndServe","url":"interfaces/_types_.nativeserverlike.html#listenandserve","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"types\".NativeServerLike"},{"id":207,"kind":2048,"name":"close","url":"interfaces/_types_.nativeserverlike.html#close","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"types\".NativeServerLike"},{"id":208,"kind":256,"name":"ExpressServerLike","url":"interfaces/_types_.expressserverlike.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":209,"kind":2048,"name":"address","url":"interfaces/_types_.expressserverlike.html#address","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"types\".ExpressServerLike"},{"id":210,"kind":1024,"name":"listening","url":"interfaces/_types_.expressserverlike.html#listening","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".ExpressServerLike"},{"id":211,"kind":2048,"name":"close","url":"interfaces/_types_.expressserverlike.html#close","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"types\".ExpressServerLike"},{"id":212,"kind":2048,"name":"once","url":"interfaces/_types_.expressserverlike.html#once","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"types\".ExpressServerLike"},{"id":213,"kind":256,"name":"ListenerLike","url":"interfaces/_types_.listenerlike.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":214,"kind":2048,"name":"listen","url":"interfaces/_types_.listenerlike.html#listen","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"types\".ListenerLike"},{"id":215,"kind":256,"name":"ExpressListenerLike","url":"interfaces/_types_.expresslistenerlike.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":216,"kind":2048,"name":"listen","url":"interfaces/_types_.expresslistenerlike.html#listen","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"types\".ExpressListenerLike"},{"id":217,"kind":4194304,"name":"ServerLike","url":"modules/_types_.html#serverlike","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":218,"kind":1,"name":"\"utils\"","url":"modules/_utils_.html","classes":"tsd-kind-module"},{"id":219,"kind":64,"name":"isString","url":"modules/_utils_.html#isstring","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"utils\""},{"id":220,"kind":64,"name":"isListener","url":"modules/_utils_.html#islistener","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"utils\""},{"id":221,"kind":64,"name":"isExpressListener","url":"modules/_utils_.html#isexpresslistener","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"utils\""},{"id":222,"kind":64,"name":"isCommonServer","url":"modules/_utils_.html#iscommonserver","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"utils\""},{"id":223,"kind":64,"name":"isStdLegacyServer","url":"modules/_utils_.html#isstdlegacyserver","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"utils\""},{"id":224,"kind":64,"name":"isStdNativeServer","url":"modules/_utils_.html#isstdnativeserver","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"utils\""},{"id":225,"kind":64,"name":"isExpressServer","url":"modules/_utils_.html#isexpressserver","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"utils\""},{"id":226,"kind":64,"name":"isServer","url":"modules/_utils_.html#isserver","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"utils\""}],"index":{"version":"2.3.9","fields":["name","parent"],"fieldVectors":[["name/0",[0,35.639]],["parent/0",[]],["name/1",[0,35.639]],["parent/1",[0,3.518]],["name/2",[1,39.323]],["parent/2",[]],["name/3",[2,50.329]],["parent/3",[1,3.882]],["name/4",[1,39.323]],["parent/4",[1,3.882]],["name/5",[3,35.639]],["parent/5",[]],["name/6",[3,35.639]],["parent/6",[3,3.518]],["name/7",[4,39.323]],["parent/7",[5,2.129]],["name/8",[6,50.329]],["parent/8",[5,2.129]],["name/9",[7,50.329]],["parent/9",[5,2.129]],["name/10",[8,50.329]],["parent/10",[5,2.129]],["name/11",[9,50.329]],["parent/11",[5,2.129]],["name/12",[10,50.329]],["parent/12",[5,2.129]],["name/13",[11,50.329]],["parent/13",[5,2.129]],["name/14",[12,50.329]],["parent/14",[5,2.129]],["name/15",[13,50.329]],["parent/15",[5,2.129]],["name/16",[14,50.329]],["parent/16",[5,2.129]],["name/17",[15,50.329]],["parent/17",[5,2.129]],["name/18",[16,50.329]],["parent/18",[5,2.129]],["name/19",[17,50.329]],["parent/19",[5,2.129]],["name/20",[18,50.329]],["parent/20",[5,2.129]],["name/21",[19,50.329]],["parent/21",[5,2.129]],["name/22",[20,35.744,21,32.11]],["parent/22",[5,2.129]],["name/23",[22,50.329]],["parent/23",[5,2.129]],["name/24",[23,50.329]],["parent/24",[5,2.129]],["name/25",[24,50.329]],["parent/25",[5,2.129]],["name/26",[25,50.329]],["parent/26",[5,2.129]],["name/27",[26,50.329]],["parent/27",[5,2.129]],["name/28",[21,45.212]],["parent/28",[5,2.129]],["name/29",[27,50.329]],["parent/29",[5,2.129]],["name/30",[28,50.329]],["parent/30",[5,2.129]],["name/31",[29,50.329]],["parent/31",[5,2.129]],["name/32",[30,50.329]],["parent/32",[5,2.129]],["name/33",[31,50.329]],["parent/33",[3,3.518]],["name/34",[3,35.639]],["parent/34",[3,3.518]],["name/35",[32,22.347]],["parent/35",[]],["name/36",[33,50.329]],["parent/36",[32,2.206]],["name/37",[34,45.212]],["parent/37",[35,3.253]],["name/38",[36,45.212]],["parent/38",[35,3.253]],["name/39",[37,41.841]],["parent/39",[35,3.253]],["name/40",[38,50.329]],["parent/40",[35,3.253]],["name/41",[39,50.329]],["parent/41",[35,3.253]],["name/42",[40,50.329]],["parent/42",[35,3.253]],["name/43",[41,50.329]],["parent/43",[35,3.253]],["name/44",[42,41.841]],["parent/44",[35,3.253]],["name/45",[43,50.329]],["parent/45",[32,2.206]],["name/46",[44,50.329]],["parent/46",[32,2.206]],["name/47",[45,50.329]],["parent/47",[46,2.057]],["name/48",[47,50.329]],["parent/48",[46,2.057]],["name/49",[48,50.329]],["parent/49",[46,2.057]],["name/50",[49,50.329]],["parent/50",[46,2.057]],["name/51",[50,50.329]],["parent/51",[46,2.057]],["name/52",[42,41.841]],["parent/52",[46,2.057]],["name/53",[51,50.329]],["parent/53",[46,2.057]],["name/54",[52,50.329]],["parent/54",[46,2.057]],["name/55",[4,39.323]],["parent/55",[46,2.057]],["name/56",[53,45.212]],["parent/56",[46,2.057]],["name/57",[54,50.329]],["parent/57",[46,2.057]],["name/58",[55,50.329]],["parent/58",[46,2.057]],["name/59",[56,50.329]],["parent/59",[46,2.057]],["name/60",[57,50.329]],["parent/60",[46,2.057]],["name/61",[58,50.329]],["parent/61",[46,2.057]],["name/62",[59,50.329]],["parent/62",[46,2.057]],["name/63",[60,41.841]],["parent/63",[46,2.057]],["name/64",[61,45.212]],["parent/64",[46,2.057]],["name/65",[62,50.329]],["parent/65",[46,2.057]],["name/66",[34,45.212]],["parent/66",[46,2.057]],["name/67",[63,50.329]],["parent/67",[46,2.057]],["name/68",[64,50.329]],["parent/68",[46,2.057]],["name/69",[65,50.329]],["parent/69",[46,2.057]],["name/70",[36,45.212]],["parent/70",[46,2.057]],["name/71",[66,41.841]],["parent/71",[46,2.057]],["name/72",[67,50.329]],["parent/72",[46,2.057]],["name/73",[68,50.329]],["parent/73",[46,2.057]],["name/74",[69,39.323]],["parent/74",[46,2.057]],["name/75",[70,50.329]],["parent/75",[32,2.206]],["name/76",[71,45.212]],["parent/76",[72,1.661]],["name/77",[73,45.212]],["parent/77",[72,1.661]],["name/78",[74,45.212]],["parent/78",[72,1.661]],["name/79",[37,41.841]],["parent/79",[72,1.661]],["name/80",[75,45.212]],["parent/80",[72,1.661]],["name/81",[76,45.212]],["parent/81",[72,1.661]],["name/82",[77,45.212]],["parent/82",[72,1.661]],["name/83",[78,45.212]],["parent/83",[72,1.661]],["name/84",[79,45.212]],["parent/84",[72,1.661]],["name/85",[80,45.212]],["parent/85",[72,1.661]],["name/86",[81,45.212]],["parent/86",[72,1.661]],["name/87",[82,45.212]],["parent/87",[72,1.661]],["name/88",[83,45.212]],["parent/88",[72,1.661]],["name/89",[84,45.212]],["parent/89",[72,1.661]],["name/90",[85,45.212]],["parent/90",[72,1.661]],["name/91",[86,45.212]],["parent/91",[72,1.661]],["name/92",[4,39.323]],["parent/92",[72,1.661]],["name/93",[87,45.212]],["parent/93",[72,1.661]],["name/94",[88,45.212]],["parent/94",[72,1.661]],["name/95",[60,41.841]],["parent/95",[72,1.661]],["name/96",[89,45.212]],["parent/96",[72,1.661]],["name/97",[90,45.212]],["parent/97",[72,1.661]],["name/98",[91,45.212]],["parent/98",[72,1.661]],["name/99",[92,45.212]],["parent/99",[72,1.661]],["name/100",[93,45.212]],["parent/100",[72,1.661]],["name/101",[94,45.212]],["parent/101",[72,1.661]],["name/102",[69,39.323]],["parent/102",[72,1.661]],["name/103",[95,45.212]],["parent/103",[72,1.661]],["name/104",[96,45.212]],["parent/104",[72,1.661]],["name/105",[97,45.212]],["parent/105",[72,1.661]],["name/106",[98,45.212]],["parent/106",[72,1.661]],["name/107",[99,45.212]],["parent/107",[72,1.661]],["name/108",[100,45.212]],["parent/108",[72,1.661]],["name/109",[101,45.212]],["parent/109",[72,1.661]],["name/110",[66,41.841]],["parent/110",[72,1.661]],["name/111",[102,45.212]],["parent/111",[72,1.661]],["name/112",[103,45.212]],["parent/112",[72,1.661]],["name/113",[104,45.212]],["parent/113",[72,1.661]],["name/114",[105,45.212]],["parent/114",[72,1.661]],["name/115",[106,45.212]],["parent/115",[72,1.661]],["name/116",[107,45.212]],["parent/116",[72,1.661]],["name/117",[108,45.212]],["parent/117",[72,1.661]],["name/118",[32,22.347]],["parent/118",[32,2.206]],["name/119",[109,50.329]],["parent/119",[110,1.362]],["name/120",[69,39.323]],["parent/120",[110,1.362]],["name/121",[111,50.329]],["parent/121",[110,1.362]],["name/122",[112,50.329]],["parent/122",[110,1.362]],["name/123",[113,50.329]],["parent/123",[110,1.362]],["name/124",[114,50.329]],["parent/124",[110,1.362]],["name/125",[115,50.329]],["parent/125",[110,1.362]],["name/126",[75,45.212]],["parent/126",[110,1.362]],["name/127",[71,45.212]],["parent/127",[110,1.362]],["name/128",[116,50.329]],["parent/128",[110,1.362]],["name/129",[117,50.329]],["parent/129",[110,1.362]],["name/130",[61,45.212]],["parent/130",[110,1.362]],["name/131",[85,45.212]],["parent/131",[110,1.362]],["name/132",[118,50.329]],["parent/132",[110,1.362]],["name/133",[119,50.329]],["parent/133",[110,1.362]],["name/134",[120,50.329]],["parent/134",[110,1.362]],["name/135",[121,50.329]],["parent/135",[110,1.362]],["name/136",[122,50.329]],["parent/136",[110,1.362]],["name/137",[73,45.212]],["parent/137",[110,1.362]],["name/138",[74,45.212]],["parent/138",[110,1.362]],["name/139",[37,41.841]],["parent/139",[110,1.362]],["name/140",[76,45.212]],["parent/140",[110,1.362]],["name/141",[77,45.212]],["parent/141",[110,1.362]],["name/142",[78,45.212]],["parent/142",[110,1.362]],["name/143",[79,45.212]],["parent/143",[110,1.362]],["name/144",[80,45.212]],["parent/144",[110,1.362]],["name/145",[81,45.212]],["parent/145",[110,1.362]],["name/146",[82,45.212]],["parent/146",[110,1.362]],["name/147",[83,45.212]],["parent/147",[110,1.362]],["name/148",[84,45.212]],["parent/148",[110,1.362]],["name/149",[86,45.212]],["parent/149",[110,1.362]],["name/150",[4,39.323]],["parent/150",[110,1.362]],["name/151",[87,45.212]],["parent/151",[110,1.362]],["name/152",[88,45.212]],["parent/152",[110,1.362]],["name/153",[60,41.841]],["parent/153",[110,1.362]],["name/154",[89,45.212]],["parent/154",[110,1.362]],["name/155",[90,45.212]],["parent/155",[110,1.362]],["name/156",[91,45.212]],["parent/156",[110,1.362]],["name/157",[92,45.212]],["parent/157",[110,1.362]],["name/158",[93,45.212]],["parent/158",[110,1.362]],["name/159",[94,45.212]],["parent/159",[110,1.362]],["name/160",[69,39.323]],["parent/160",[110,1.362]],["name/161",[95,45.212]],["parent/161",[110,1.362]],["name/162",[96,45.212]],["parent/162",[110,1.362]],["name/163",[97,45.212]],["parent/163",[110,1.362]],["name/164",[98,45.212]],["parent/164",[110,1.362]],["name/165",[99,45.212]],["parent/165",[110,1.362]],["name/166",[100,45.212]],["parent/166",[110,1.362]],["name/167",[101,45.212]],["parent/167",[110,1.362]],["name/168",[66,41.841]],["parent/168",[110,1.362]],["name/169",[102,45.212]],["parent/169",[110,1.362]],["name/170",[103,45.212]],["parent/170",[110,1.362]],["name/171",[104,45.212]],["parent/171",[110,1.362]],["name/172",[105,45.212]],["parent/172",[110,1.362]],["name/173",[106,45.212]],["parent/173",[110,1.362]],["name/174",[107,45.212]],["parent/174",[110,1.362]],["name/175",[108,45.212]],["parent/175",[110,1.362]],["name/176",[123,50.329]],["parent/176",[32,2.206]],["name/177",[124,50.329]],["parent/177",[32,2.206]],["name/178",[125,35.639]],["parent/178",[126,4.969]],["name/179",[127,50.329]],["parent/179",[32,2.206]],["name/180",[125,35.639]],["parent/180",[128,4.969]],["name/181",[129,50.329]],["parent/181",[32,2.206]],["name/182",[125,35.639]],["parent/182",[130,4.969]],["name/183",[131,50.329]],["parent/183",[32,2.206]],["name/184",[125,35.639]],["parent/184",[132,4.969]],["name/185",[133,50.329]],["parent/185",[32,2.206]],["name/186",[134,50.329]],["parent/186",[32,2.206]],["name/187",[135,50.329]],["parent/187",[32,2.206]],["name/188",[53,45.212]],["parent/188",[32,2.206]],["name/189",[125,35.639]],["parent/189",[136,4.969]],["name/190",[137,50.329]],["parent/190",[32,2.206]],["name/191",[125,35.639]],["parent/191",[138,4.969]],["name/192",[139,50.329]],["parent/192",[32,2.206]],["name/193",[140,50.329]],["parent/193",[32,2.206]],["name/194",[141,50.329]],["parent/194",[32,2.206]],["name/195",[42,41.841]],["parent/195",[32,2.206]],["name/196",[142,50.329]],["parent/196",[32,2.206]],["name/197",[143,50.329]],["parent/197",[32,2.206]],["name/198",[144,50.329]],["parent/198",[32,2.206]],["name/199",[145,32.952]],["parent/199",[]],["name/200",[146,50.329]],["parent/200",[145,3.253]],["name/201",[147,50.329]],["parent/201",[145,3.253]],["name/202",[148,50.329]],["parent/202",[149,4.463]],["name/203",[0,35.639]],["parent/203",[149,4.463]],["name/204",[150,50.329]],["parent/204",[145,3.253]],["name/205",[151,50.329]],["parent/205",[152,4.131]],["name/206",[153,50.329]],["parent/206",[152,4.131]],["name/207",[0,35.639]],["parent/207",[152,4.131]],["name/208",[154,50.329]],["parent/208",[145,3.253]],["name/209",[155,50.329]],["parent/209",[156,3.882]],["name/210",[157,50.329]],["parent/210",[156,3.882]],["name/211",[0,35.639]],["parent/211",[156,3.882]],["name/212",[158,50.329]],["parent/212",[156,3.882]],["name/213",[159,50.329]],["parent/213",[145,3.253]],["name/214",[160,45.212]],["parent/214",[161,4.969]],["name/215",[162,50.329]],["parent/215",[145,3.253]],["name/216",[160,45.212]],["parent/216",[163,4.969]],["name/217",[164,50.329]],["parent/217",[145,3.253]],["name/218",[165,31.838]],["parent/218",[]],["name/219",[166,50.329]],["parent/219",[165,3.143]],["name/220",[167,50.329]],["parent/220",[165,3.143]],["name/221",[168,50.329]],["parent/221",[165,3.143]],["name/222",[169,50.329]],["parent/222",[165,3.143]],["name/223",[170,50.329]],["parent/223",[165,3.143]],["name/224",[171,50.329]],["parent/224",[165,3.143]],["name/225",[172,50.329]],["parent/225",[165,3.143]],["name/226",[173,50.329]],["parent/226",[165,3.143]]],"invertedIndex":[["__type",{"_index":125,"name":{"178":{},"180":{},"182":{},"184":{},"189":{},"191":{}},"parent":{}}],["abort",{"_index":76,"name":{"81":{},"140":{}},"parent":{}}],["accept",{"_index":77,"name":{"82":{},"141":{}},"parent":{}}],["accepted",{"_index":45,"name":{"47":{}},"parent":{}}],["address",{"_index":155,"name":{"209":{}},"parent":{}}],["addrs",{"_index":151,"name":{"205":{}},"parent":{}}],["agent",{"_index":73,"name":{"77":{},"137":{}},"parent":{}}],["app",{"_index":115,"name":{"125":{}},"parent":{}}],["assert",{"_index":118,"name":{"132":{}},"parent":{}}],["assertbody",{"_index":119,"name":{"133":{}},"parent":{}}],["assertfunction",{"_index":122,"name":{"136":{}},"parent":{}}],["assertheader",{"_index":120,"name":{"134":{}},"parent":{}}],["asserts",{"_index":109,"name":{"119":{}},"parent":{}}],["assertstatus",{"_index":121,"name":{"135":{}},"parent":{}}],["attach",{"_index":78,"name":{"83":{},"142":{}},"parent":{}}],["auth",{"_index":79,"name":{"84":{},"143":{}},"parent":{}}],["badrequest",{"_index":47,"name":{"48":{}},"parent":{}}],["body",{"_index":48,"name":{"49":{}},"parent":{}}],["buffer",{"_index":80,"name":{"85":{},"144":{}},"parent":{}}],["ca",{"_index":81,"name":{"86":{},"145":{}},"parent":{}}],["callbackhandler",{"_index":127,"name":{"179":{}},"parent":{}}],["catch",{"_index":108,"name":{"117":{},"175":{}},"parent":{}}],["cert",{"_index":82,"name":{"87":{},"146":{}},"parent":{}}],["charset",{"_index":49,"name":{"50":{}},"parent":{}}],["checkout",{"_index":12,"name":{"14":{}},"parent":{}}],["cleanheader",{"_index":143,"name":{"197":{}},"parent":{}}],["cleartimeout",{"_index":83,"name":{"88":{},"147":{}},"parent":{}}],["clienterror",{"_index":50,"name":{"51":{}},"parent":{}}],["close",{"_index":0,"name":{"0":{},"1":{},"203":{},"207":{},"211":{}},"parent":{"1":{}}}],["completexhrpromises",{"_index":140,"name":{"193":{}},"parent":{}}],["connect",{"_index":13,"name":{"15":{}},"parent":{}}],["constructor",{"_index":71,"name":{"76":{},"127":{}},"parent":{}}],["cookies",{"_index":74,"name":{"78":{},"138":{}},"parent":{}}],["copy",{"_index":14,"name":{"16":{}},"parent":{}}],["delete",{"_index":8,"name":{"10":{}},"parent":{}}],["disabletlscerts",{"_index":84,"name":{"89":{},"148":{}},"parent":{}}],["end",{"_index":85,"name":{"90":{},"131":{}},"parent":{}}],["error",{"_index":42,"name":{"44":{},"52":{},"195":{}},"parent":{}}],["expect",{"_index":117,"name":{"129":{}},"parent":{}}],["expectchecker",{"_index":124,"name":{"177":{}},"parent":{}}],["expresslistenerlike",{"_index":162,"name":{"215":{}},"parent":{}}],["expressserverlike",{"_index":154,"name":{"208":{}},"parent":{}}],["field",{"_index":86,"name":{"91":{},"149":{}},"parent":{}}],["files",{"_index":51,"name":{"53":{}},"parent":{}}],["forbidden",{"_index":52,"name":{"54":{}},"parent":{}}],["get",{"_index":4,"name":{"7":{},"55":{},"92":{},"150":{}},"parent":{}}],["getxhr",{"_index":2,"name":{"3":{}},"parent":{}}],["head",{"_index":11,"name":{"13":{}},"parent":{}}],["header",{"_index":53,"name":{"56":{},"188":{}},"parent":{}}],["headers",{"_index":54,"name":{"57":{}},"parent":{}}],["headervalue",{"_index":135,"name":{"187":{}},"parent":{}}],["http2",{"_index":87,"name":{"93":{},"151":{}},"parent":{}}],["httperror",{"_index":33,"name":{"36":{}},"parent":{}}],["info",{"_index":55,"name":{"58":{}},"parent":{}}],["initheaders",{"_index":144,"name":{"198":{}},"parent":{}}],["irequest",{"_index":70,"name":{"75":{}},"parent":{}}],["iresponse",{"_index":44,"name":{"46":{}},"parent":{}}],["iscommonserver",{"_index":169,"name":{"222":{}},"parent":{}}],["isexpresslistener",{"_index":168,"name":{"221":{}},"parent":{}}],["isexpressserver",{"_index":172,"name":{"225":{}},"parent":{}}],["islistener",{"_index":167,"name":{"220":{}},"parent":{}}],["isredirect",{"_index":142,"name":{"196":{}},"parent":{}}],["isserver",{"_index":173,"name":{"226":{}},"parent":{}}],["isstdlegacyserver",{"_index":170,"name":{"223":{}},"parent":{}}],["isstdnativeserver",{"_index":171,"name":{"224":{}},"parent":{}}],["isstring",{"_index":166,"name":{"219":{}},"parent":{}}],["key",{"_index":88,"name":{"94":{},"152":{}},"parent":{}}],["legacyserverlike",{"_index":147,"name":{"201":{}},"parent":{}}],["links",{"_index":56,"name":{"59":{}},"parent":{}}],["listen",{"_index":160,"name":{"214":{},"216":{}},"parent":{}}],["listenandserve",{"_index":153,"name":{"206":{}},"parent":{}}],["listener",{"_index":148,"name":{"202":{}},"parent":{}}],["listenerlike",{"_index":159,"name":{"213":{}},"parent":{}}],["listening",{"_index":157,"name":{"210":{}},"parent":{}}],["lock",{"_index":15,"name":{"17":{}},"parent":{}}],["m",{"_index":20,"name":{"22":{}},"parent":{}}],["maxresponsesize",{"_index":106,"name":{"115":{},"173":{}},"parent":{}}],["merge",{"_index":16,"name":{"18":{}},"parent":{}}],["message",{"_index":40,"name":{"42":{}},"parent":{}}],["method",{"_index":37,"name":{"39":{},"79":{},"139":{}},"parent":{}}],["mkactivity",{"_index":17,"name":{"19":{}},"parent":{}}],["mkcol",{"_index":18,"name":{"20":{}},"parent":{}}],["move",{"_index":19,"name":{"21":{}},"parent":{}}],["multipartvalue",{"_index":134,"name":{"186":{}},"parent":{}}],["multipartvaluesingle",{"_index":133,"name":{"185":{}},"parent":{}}],["name",{"_index":39,"name":{"41":{}},"parent":{}}],["nativeserverlike",{"_index":150,"name":{"204":{}},"parent":{}}],["nocontent",{"_index":57,"name":{"60":{}},"parent":{}}],["notacceptable",{"_index":58,"name":{"61":{}},"parent":{}}],["notfound",{"_index":59,"name":{"62":{}},"parent":{}}],["notify",{"_index":22,"name":{"23":{}},"parent":{}}],["ok",{"_index":60,"name":{"63":{},"95":{},"153":{}},"parent":{}}],["on",{"_index":89,"name":{"96":{},"154":{}},"parent":{}}],["once",{"_index":158,"name":{"212":{}},"parent":{}}],["options",{"_index":10,"name":{"12":{}},"parent":{}}],["parse",{"_index":90,"name":{"97":{},"155":{}},"parent":{}}],["parser",{"_index":131,"name":{"183":{}},"parent":{}}],["part",{"_index":91,"name":{"98":{},"156":{}},"parent":{}}],["patch",{"_index":9,"name":{"11":{}},"parent":{}}],["path",{"_index":38,"name":{"40":{}},"parent":{}}],["pfx",{"_index":92,"name":{"99":{},"157":{}},"parent":{}}],["pipe",{"_index":93,"name":{"100":{},"158":{}},"parent":{}}],["plugin",{"_index":137,"name":{"190":{}},"parent":{}}],["post",{"_index":6,"name":{"8":{}},"parent":{}}],["propfind",{"_index":23,"name":{"24":{}},"parent":{}}],["proppatch",{"_index":24,"name":{"25":{}},"parent":{}}],["purge",{"_index":25,"name":{"26":{}},"parent":{}}],["put",{"_index":7,"name":{"9":{}},"parent":{}}],["query",{"_index":94,"name":{"101":{},"159":{}},"parent":{}}],["random",{"_index":123,"name":{"176":{}},"parent":{}}],["redirect",{"_index":61,"name":{"64":{},"130":{}},"parent":{}}],["redirectlist",{"_index":111,"name":{"121":{}},"parent":{}}],["redirects",{"_index":69,"name":{"74":{},"102":{},"120":{},"160":{}},"parent":{}}],["report",{"_index":26,"name":{"27":{}},"parent":{}}],["requesthandlerlike",{"_index":146,"name":{"200":{}},"parent":{}}],["responsetype",{"_index":95,"name":{"103":{},"161":{}},"parent":{}}],["retry",{"_index":96,"name":{"104":{},"162":{}},"parent":{}}],["search",{"_index":21,"name":{"22":{},"28":{}},"parent":{}}],["send",{"_index":97,"name":{"105":{},"163":{}},"parent":{}}],["serialize",{"_index":98,"name":{"106":{},"164":{}},"parent":{}}],["serializer",{"_index":129,"name":{"181":{}},"parent":{}}],["server",{"_index":112,"name":{"122":{}},"parent":{}}],["servererror",{"_index":62,"name":{"65":{}},"parent":{}}],["serverlike",{"_index":164,"name":{"217":{}},"parent":{}}],["serversetuppromise",{"_index":113,"name":{"123":{}},"parent":{}}],["set",{"_index":99,"name":{"107":{},"165":{}},"parent":{}}],["setserveraddress",{"_index":116,"name":{"128":{}},"parent":{}}],["sham_symbol",{"_index":139,"name":{"192":{}},"parent":{}}],["stack",{"_index":41,"name":{"43":{}},"parent":{}}],["startmanagedserver",{"_index":31,"name":{"33":{}},"parent":{}}],["status",{"_index":34,"name":{"37":{},"66":{}},"parent":{}}],["statuscode",{"_index":63,"name":{"67":{}},"parent":{}}],["statustext",{"_index":65,"name":{"69":{}},"parent":{}}],["statustype",{"_index":64,"name":{"68":{}},"parent":{}}],["subscribe",{"_index":27,"name":{"29":{}},"parent":{}}],["superagent",{"_index":1,"name":{"2":{},"4":{}},"parent":{"3":{},"4":{}}}],["superdeno",{"_index":3,"name":{"5":{},"6":{},"34":{}},"parent":{"6":{},"33":{},"34":{}}}],["superdeno\".superdeno",{"_index":5,"name":{},"parent":{"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":{}}}],["superrequest",{"_index":141,"name":{"194":{}},"parent":{}}],["test",{"_index":32,"name":{"35":{},"118":{}},"parent":{"36":{},"45":{},"46":{},"75":{},"118":{},"176":{},"177":{},"179":{},"181":{},"183":{},"185":{},"186":{},"187":{},"188":{},"190":{},"192":{},"193":{},"194":{},"195":{},"196":{},"197":{},"198":{}}}],["test\".callbackhandler",{"_index":128,"name":{},"parent":{"180":{}}}],["test\".expectchecker",{"_index":126,"name":{},"parent":{"178":{}}}],["test\".header",{"_index":136,"name":{},"parent":{"189":{}}}],["test\".httperror",{"_index":35,"name":{},"parent":{"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{}}}],["test\".irequest",{"_index":72,"name":{},"parent":{"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{}}}],["test\".iresponse",{"_index":46,"name":{},"parent":{"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}}}],["test\".parser",{"_index":132,"name":{},"parent":{"184":{}}}],["test\".plugin",{"_index":138,"name":{},"parent":{"191":{}}}],["test\".serializer",{"_index":130,"name":{},"parent":{"182":{}}}],["test\".test",{"_index":110,"name":{},"parent":{"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"139":{},"140":{},"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{},"164":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"173":{},"174":{},"175":{}}}],["text",{"_index":36,"name":{"38":{},"70":{}},"parent":{}}],["then",{"_index":107,"name":{"116":{},"174":{}},"parent":{}}],["timeout",{"_index":100,"name":{"108":{},"166":{}},"parent":{}}],["trace",{"_index":28,"name":{"30":{}},"parent":{}}],["trustlocalhost",{"_index":101,"name":{"109":{},"167":{}},"parent":{}}],["type",{"_index":66,"name":{"71":{},"110":{},"168":{}},"parent":{}}],["types",{"_index":145,"name":{"199":{}},"parent":{"200":{},"201":{},"204":{},"208":{},"213":{},"215":{},"217":{}}}],["types\".expresslistenerlike",{"_index":163,"name":{},"parent":{"216":{}}}],["types\".expressserverlike",{"_index":156,"name":{},"parent":{"209":{},"210":{},"211":{},"212":{}}}],["types\".legacyserverlike",{"_index":149,"name":{},"parent":{"202":{},"203":{}}}],["types\".listenerlike",{"_index":161,"name":{},"parent":{"214":{}}}],["types\".nativeserverlike",{"_index":152,"name":{},"parent":{"205":{},"206":{},"207":{}}}],["unauthorized",{"_index":67,"name":{"72":{}},"parent":{}}],["unlock",{"_index":29,"name":{"31":{}},"parent":{}}],["unset",{"_index":102,"name":{"111":{},"169":{}},"parent":{}}],["unsubscribe",{"_index":30,"name":{"32":{}},"parent":{}}],["url",{"_index":75,"name":{"80":{},"126":{}},"parent":{}}],["urlsetuppromise",{"_index":114,"name":{"124":{}},"parent":{}}],["use",{"_index":103,"name":{"112":{},"170":{}},"parent":{}}],["utils",{"_index":165,"name":{"218":{}},"parent":{"219":{},"220":{},"221":{},"222":{},"223":{},"224":{},"225":{},"226":{}}}],["withcredentials",{"_index":104,"name":{"113":{},"171":{}},"parent":{}}],["write",{"_index":105,"name":{"114":{},"172":{}},"parent":{}}],["xhr",{"_index":68,"name":{"73":{}},"parent":{}}],["xmlhttprequest",{"_index":43,"name":{"45":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file +{"kinds":{"1":"Module","32":"Variable","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","4194304":"Type alias"},"rows":[{"id":0,"kind":1,"name":"\"close\"","url":"modules/_close_.html","classes":"tsd-kind-module"},{"id":1,"kind":64,"name":"close","url":"modules/_close_.html#close","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-private","parent":"\"close\""},{"id":2,"kind":1,"name":"\"superagent\"","url":"modules/_superagent_.html","classes":"tsd-kind-module"},{"id":3,"kind":64,"name":"getXHR","url":"modules/_superagent_.html#getxhr","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"superagent\""},{"id":4,"kind":32,"name":"superagent","url":"modules/_superagent_.html#superagent","classes":"tsd-kind-variable tsd-parent-kind-module","parent":"\"superagent\""},{"id":5,"kind":1,"name":"\"superdeno\"","url":"modules/_superdeno_.html","classes":"tsd-kind-module"},{"id":6,"kind":256,"name":"SuperDeno","url":"interfaces/_superdeno_.superdeno.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"superdeno\""},{"id":7,"kind":2048,"name":"get","url":"interfaces/_superdeno_.superdeno.html#get","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":8,"kind":2048,"name":"post","url":"interfaces/_superdeno_.superdeno.html#post","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":9,"kind":2048,"name":"put","url":"interfaces/_superdeno_.superdeno.html#put","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":10,"kind":2048,"name":"delete","url":"interfaces/_superdeno_.superdeno.html#delete","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":11,"kind":2048,"name":"patch","url":"interfaces/_superdeno_.superdeno.html#patch","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":12,"kind":2048,"name":"options","url":"interfaces/_superdeno_.superdeno.html#options","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":13,"kind":2048,"name":"head","url":"interfaces/_superdeno_.superdeno.html#head","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":14,"kind":2048,"name":"checkout","url":"interfaces/_superdeno_.superdeno.html#checkout","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":15,"kind":2048,"name":"connect","url":"interfaces/_superdeno_.superdeno.html#connect","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":16,"kind":2048,"name":"copy","url":"interfaces/_superdeno_.superdeno.html#copy","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":17,"kind":2048,"name":"lock","url":"interfaces/_superdeno_.superdeno.html#lock","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":18,"kind":2048,"name":"merge","url":"interfaces/_superdeno_.superdeno.html#merge","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":19,"kind":2048,"name":"mkactivity","url":"interfaces/_superdeno_.superdeno.html#mkactivity","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":20,"kind":2048,"name":"mkcol","url":"interfaces/_superdeno_.superdeno.html#mkcol","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":21,"kind":2048,"name":"move","url":"interfaces/_superdeno_.superdeno.html#move","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":22,"kind":2048,"name":"m-search","url":"interfaces/_superdeno_.superdeno.html#m_search","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":23,"kind":2048,"name":"notify","url":"interfaces/_superdeno_.superdeno.html#notify","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":24,"kind":2048,"name":"propfind","url":"interfaces/_superdeno_.superdeno.html#propfind","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":25,"kind":2048,"name":"proppatch","url":"interfaces/_superdeno_.superdeno.html#proppatch","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":26,"kind":2048,"name":"purge","url":"interfaces/_superdeno_.superdeno.html#purge","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":27,"kind":2048,"name":"report","url":"interfaces/_superdeno_.superdeno.html#report","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":28,"kind":2048,"name":"search","url":"interfaces/_superdeno_.superdeno.html#search","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":29,"kind":2048,"name":"subscribe","url":"interfaces/_superdeno_.superdeno.html#subscribe","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":30,"kind":2048,"name":"trace","url":"interfaces/_superdeno_.superdeno.html#trace","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":31,"kind":2048,"name":"unlock","url":"interfaces/_superdeno_.superdeno.html#unlock","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":32,"kind":2048,"name":"unsubscribe","url":"interfaces/_superdeno_.superdeno.html#unsubscribe","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"superdeno\".SuperDeno"},{"id":33,"kind":64,"name":"startManagedServer","url":"modules/_superdeno_.html#startmanagedserver","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"superdeno\""},{"id":34,"kind":64,"name":"superdeno","url":"modules/_superdeno_.html#superdeno-1","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"superdeno\""},{"id":35,"kind":1,"name":"\"test\"","url":"modules/_test_.html","classes":"tsd-kind-module"},{"id":36,"kind":256,"name":"HTTPError","url":"interfaces/_test_.httperror.html","classes":"tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":37,"kind":1024,"name":"status","url":"interfaces/_test_.httperror.html#status","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported","parent":"\"test\".HTTPError"},{"id":38,"kind":1024,"name":"text","url":"interfaces/_test_.httperror.html#text","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported","parent":"\"test\".HTTPError"},{"id":39,"kind":1024,"name":"method","url":"interfaces/_test_.httperror.html#method","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported","parent":"\"test\".HTTPError"},{"id":40,"kind":1024,"name":"path","url":"interfaces/_test_.httperror.html#path","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported","parent":"\"test\".HTTPError"},{"id":41,"kind":1024,"name":"name","url":"interfaces/_test_.httperror.html#name","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited tsd-is-not-exported","parent":"\"test\".HTTPError"},{"id":42,"kind":1024,"name":"message","url":"interfaces/_test_.httperror.html#message","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited tsd-is-not-exported","parent":"\"test\".HTTPError"},{"id":43,"kind":1024,"name":"stack","url":"interfaces/_test_.httperror.html#stack","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited tsd-is-not-exported","parent":"\"test\".HTTPError"},{"id":44,"kind":1024,"name":"Error","url":"interfaces/_test_.httperror.html#error","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported","parent":"\"test\".HTTPError"},{"id":45,"kind":256,"name":"XMLHttpRequest","url":"interfaces/_test_.xmlhttprequest.html","classes":"tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":46,"kind":256,"name":"IResponse","url":"interfaces/_test_.iresponse.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"test\""},{"id":47,"kind":1024,"name":"accepted","url":"interfaces/_test_.iresponse.html#accepted","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":48,"kind":1024,"name":"badRequest","url":"interfaces/_test_.iresponse.html#badrequest","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":49,"kind":1024,"name":"body","url":"interfaces/_test_.iresponse.html#body","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":50,"kind":1024,"name":"charset","url":"interfaces/_test_.iresponse.html#charset","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":51,"kind":1024,"name":"clientError","url":"interfaces/_test_.iresponse.html#clienterror","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":52,"kind":1024,"name":"error","url":"interfaces/_test_.iresponse.html#error","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":53,"kind":1024,"name":"files","url":"interfaces/_test_.iresponse.html#files","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":54,"kind":1024,"name":"forbidden","url":"interfaces/_test_.iresponse.html#forbidden","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":55,"kind":2048,"name":"get","url":"interfaces/_test_.iresponse.html#get","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":56,"kind":1024,"name":"header","url":"interfaces/_test_.iresponse.html#header","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":57,"kind":1024,"name":"headers","url":"interfaces/_test_.iresponse.html#headers","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":58,"kind":1024,"name":"info","url":"interfaces/_test_.iresponse.html#info","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":59,"kind":1024,"name":"links","url":"interfaces/_test_.iresponse.html#links","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":60,"kind":1024,"name":"noContent","url":"interfaces/_test_.iresponse.html#nocontent","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":61,"kind":1024,"name":"notAcceptable","url":"interfaces/_test_.iresponse.html#notacceptable","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":62,"kind":1024,"name":"notFound","url":"interfaces/_test_.iresponse.html#notfound","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":63,"kind":1024,"name":"ok","url":"interfaces/_test_.iresponse.html#ok","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":64,"kind":1024,"name":"redirect","url":"interfaces/_test_.iresponse.html#redirect","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":65,"kind":1024,"name":"serverError","url":"interfaces/_test_.iresponse.html#servererror","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":66,"kind":1024,"name":"status","url":"interfaces/_test_.iresponse.html#status","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":67,"kind":1024,"name":"statusCode","url":"interfaces/_test_.iresponse.html#statuscode","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":68,"kind":1024,"name":"statusType","url":"interfaces/_test_.iresponse.html#statustype","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":69,"kind":1024,"name":"statusText","url":"interfaces/_test_.iresponse.html#statustext","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":70,"kind":1024,"name":"text","url":"interfaces/_test_.iresponse.html#text","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":71,"kind":1024,"name":"type","url":"interfaces/_test_.iresponse.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":72,"kind":1024,"name":"unauthorized","url":"interfaces/_test_.iresponse.html#unauthorized","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":73,"kind":1024,"name":"xhr","url":"interfaces/_test_.iresponse.html#xhr","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":74,"kind":1024,"name":"redirects","url":"interfaces/_test_.iresponse.html#redirects","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IResponse"},{"id":75,"kind":256,"name":"IRequest","url":"interfaces/_test_.irequest.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"test\""},{"id":76,"kind":512,"name":"constructor","url":"interfaces/_test_.irequest.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":77,"kind":2048,"name":"agent","url":"interfaces/_test_.irequest.html#agent","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":78,"kind":1024,"name":"cookies","url":"interfaces/_test_.irequest.html#cookies","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":79,"kind":1024,"name":"method","url":"interfaces/_test_.irequest.html#method","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":80,"kind":1024,"name":"url","url":"interfaces/_test_.irequest.html#url","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":81,"kind":2048,"name":"abort","url":"interfaces/_test_.irequest.html#abort","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":82,"kind":2048,"name":"accept","url":"interfaces/_test_.irequest.html#accept","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":83,"kind":2048,"name":"attach","url":"interfaces/_test_.irequest.html#attach","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":84,"kind":2048,"name":"auth","url":"interfaces/_test_.irequest.html#auth","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":85,"kind":2048,"name":"buffer","url":"interfaces/_test_.irequest.html#buffer","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":86,"kind":2048,"name":"ca","url":"interfaces/_test_.irequest.html#ca","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":87,"kind":2048,"name":"cert","url":"interfaces/_test_.irequest.html#cert","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":88,"kind":2048,"name":"clearTimeout","url":"interfaces/_test_.irequest.html#cleartimeout","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":89,"kind":2048,"name":"disableTLSCerts","url":"interfaces/_test_.irequest.html#disabletlscerts","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":90,"kind":2048,"name":"end","url":"interfaces/_test_.irequest.html#end","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":91,"kind":2048,"name":"field","url":"interfaces/_test_.irequest.html#field","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":92,"kind":2048,"name":"get","url":"interfaces/_test_.irequest.html#get","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":93,"kind":2048,"name":"http2","url":"interfaces/_test_.irequest.html#http2","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":94,"kind":2048,"name":"key","url":"interfaces/_test_.irequest.html#key","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":95,"kind":2048,"name":"ok","url":"interfaces/_test_.irequest.html#ok","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":96,"kind":2048,"name":"on","url":"interfaces/_test_.irequest.html#on","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":97,"kind":2048,"name":"parse","url":"interfaces/_test_.irequest.html#parse","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":98,"kind":2048,"name":"part","url":"interfaces/_test_.irequest.html#part","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":99,"kind":2048,"name":"pfx","url":"interfaces/_test_.irequest.html#pfx","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":100,"kind":2048,"name":"pipe","url":"interfaces/_test_.irequest.html#pipe","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":101,"kind":2048,"name":"query","url":"interfaces/_test_.irequest.html#query","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":102,"kind":2048,"name":"redirects","url":"interfaces/_test_.irequest.html#redirects","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":103,"kind":2048,"name":"responseType","url":"interfaces/_test_.irequest.html#responsetype","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":104,"kind":2048,"name":"retry","url":"interfaces/_test_.irequest.html#retry","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":105,"kind":2048,"name":"send","url":"interfaces/_test_.irequest.html#send","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":106,"kind":2048,"name":"serialize","url":"interfaces/_test_.irequest.html#serialize","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":107,"kind":2048,"name":"set","url":"interfaces/_test_.irequest.html#set","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":108,"kind":2048,"name":"timeout","url":"interfaces/_test_.irequest.html#timeout","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":109,"kind":2048,"name":"trustLocalhost","url":"interfaces/_test_.irequest.html#trustlocalhost","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":110,"kind":2048,"name":"type","url":"interfaces/_test_.irequest.html#type","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":111,"kind":2048,"name":"unset","url":"interfaces/_test_.irequest.html#unset","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":112,"kind":2048,"name":"use","url":"interfaces/_test_.irequest.html#use","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":113,"kind":2048,"name":"withCredentials","url":"interfaces/_test_.irequest.html#withcredentials","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":114,"kind":2048,"name":"write","url":"interfaces/_test_.irequest.html#write","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":115,"kind":2048,"name":"maxResponseSize","url":"interfaces/_test_.irequest.html#maxresponsesize","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"test\".IRequest"},{"id":116,"kind":2048,"name":"then","url":"interfaces/_test_.irequest.html#then","classes":"tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter tsd-is-inherited","parent":"\"test\".IRequest"},{"id":117,"kind":2048,"name":"catch","url":"interfaces/_test_.irequest.html#catch","classes":"tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter tsd-is-inherited","parent":"\"test\".IRequest"},{"id":118,"kind":128,"name":"Test","url":"classes/_test_.test.html","classes":"tsd-kind-class tsd-parent-kind-module","parent":"\"test\""},{"id":119,"kind":1024,"name":"#asserts","url":"classes/_test_.test.html#_asserts","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":120,"kind":1024,"name":"#redirects","url":"classes/_test_.test.html#_redirects","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":121,"kind":1024,"name":"#redirectList","url":"classes/_test_.test.html#_redirectlist","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":122,"kind":1024,"name":"#server","url":"classes/_test_.test.html#_server","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":123,"kind":1024,"name":"#serverSetupPromise","url":"classes/_test_.test.html#_serversetuppromise","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":124,"kind":1024,"name":"#urlSetupPromise","url":"classes/_test_.test.html#_urlsetuppromise","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":125,"kind":1024,"name":"app","url":"classes/_test_.test.html#app","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"test\".Test"},{"id":126,"kind":1024,"name":"override","url":"classes/_test_.test.html#override","classes":"tsd-kind-property tsd-parent-kind-class","parent":"\"test\".Test"},{"id":127,"kind":1024,"name":"url","url":"classes/_test_.test.html#url","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite","parent":"\"test\".Test"},{"id":128,"kind":512,"name":"constructor","url":"classes/_test_.test.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"\"test\".Test"},{"id":129,"kind":2048,"name":"#setServerAddress","url":"classes/_test_.test.html#_setserveraddress","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":130,"kind":2048,"name":"expect","url":"classes/_test_.test.html#expect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"\"test\".Test"},{"id":131,"kind":2048,"name":"#redirect","url":"classes/_test_.test.html#_redirect","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":132,"kind":2048,"name":"end","url":"classes/_test_.test.html#end","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"\"test\".Test"},{"id":133,"kind":2048,"name":"#assert","url":"classes/_test_.test.html#_assert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":134,"kind":2048,"name":"#assertBody","url":"classes/_test_.test.html#_assertbody","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":135,"kind":2048,"name":"#assertHeader","url":"classes/_test_.test.html#_assertheader","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":136,"kind":2048,"name":"#assertStatus","url":"classes/_test_.test.html#_assertstatus","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":137,"kind":2048,"name":"#assertFunction","url":"classes/_test_.test.html#_assertfunction","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"\"test\".Test"},{"id":138,"kind":2048,"name":"agent","url":"classes/_test_.test.html#agent","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":139,"kind":1024,"name":"cookies","url":"classes/_test_.test.html#cookies","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":140,"kind":1024,"name":"method","url":"classes/_test_.test.html#method","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":141,"kind":2048,"name":"abort","url":"classes/_test_.test.html#abort","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":142,"kind":2048,"name":"accept","url":"classes/_test_.test.html#accept","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":143,"kind":2048,"name":"attach","url":"classes/_test_.test.html#attach","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":144,"kind":2048,"name":"auth","url":"classes/_test_.test.html#auth","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":145,"kind":2048,"name":"buffer","url":"classes/_test_.test.html#buffer","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":146,"kind":2048,"name":"ca","url":"classes/_test_.test.html#ca","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":147,"kind":2048,"name":"cert","url":"classes/_test_.test.html#cert","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":148,"kind":2048,"name":"clearTimeout","url":"classes/_test_.test.html#cleartimeout","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":149,"kind":2048,"name":"disableTLSCerts","url":"classes/_test_.test.html#disabletlscerts","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":150,"kind":2048,"name":"field","url":"classes/_test_.test.html#field","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":151,"kind":2048,"name":"get","url":"classes/_test_.test.html#get","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":152,"kind":2048,"name":"http2","url":"classes/_test_.test.html#http2","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":153,"kind":2048,"name":"key","url":"classes/_test_.test.html#key","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":154,"kind":2048,"name":"ok","url":"classes/_test_.test.html#ok","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":155,"kind":2048,"name":"on","url":"classes/_test_.test.html#on","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":156,"kind":2048,"name":"parse","url":"classes/_test_.test.html#parse","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":157,"kind":2048,"name":"part","url":"classes/_test_.test.html#part","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":158,"kind":2048,"name":"pfx","url":"classes/_test_.test.html#pfx","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":159,"kind":2048,"name":"pipe","url":"classes/_test_.test.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":160,"kind":2048,"name":"query","url":"classes/_test_.test.html#query","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":161,"kind":2048,"name":"redirects","url":"classes/_test_.test.html#redirects","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":162,"kind":2048,"name":"responseType","url":"classes/_test_.test.html#responsetype","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":163,"kind":2048,"name":"retry","url":"classes/_test_.test.html#retry","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":164,"kind":2048,"name":"send","url":"classes/_test_.test.html#send","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":165,"kind":2048,"name":"serialize","url":"classes/_test_.test.html#serialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":166,"kind":2048,"name":"set","url":"classes/_test_.test.html#set","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":167,"kind":2048,"name":"timeout","url":"classes/_test_.test.html#timeout","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":168,"kind":2048,"name":"trustLocalhost","url":"classes/_test_.test.html#trustlocalhost","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":169,"kind":2048,"name":"type","url":"classes/_test_.test.html#type","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":170,"kind":2048,"name":"unset","url":"classes/_test_.test.html#unset","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":171,"kind":2048,"name":"use","url":"classes/_test_.test.html#use","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":172,"kind":2048,"name":"withCredentials","url":"classes/_test_.test.html#withcredentials","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":173,"kind":2048,"name":"write","url":"classes/_test_.test.html#write","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":174,"kind":2048,"name":"maxResponseSize","url":"classes/_test_.test.html#maxresponsesize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"\"test\".Test"},{"id":175,"kind":2048,"name":"then","url":"classes/_test_.test.html#then","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"\"test\".Test"},{"id":176,"kind":2048,"name":"catch","url":"classes/_test_.test.html#catch","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"\"test\".Test"},{"id":177,"kind":64,"name":"random","url":"modules/_test_.html#random","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"test\""},{"id":178,"kind":4194304,"name":"ExpectChecker","url":"modules/_test_.html#expectchecker","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":179,"kind":65536,"name":"__type","url":"modules/_test_.html#expectchecker.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"test\".ExpectChecker"},{"id":180,"kind":4194304,"name":"CallbackHandler","url":"modules/_test_.html#callbackhandler","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":181,"kind":65536,"name":"__type","url":"modules/_test_.html#callbackhandler.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"test\".CallbackHandler"},{"id":182,"kind":4194304,"name":"Serializer","url":"modules/_test_.html#serializer","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":183,"kind":65536,"name":"__type","url":"modules/_test_.html#serializer.__type-5","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"test\".Serializer"},{"id":184,"kind":4194304,"name":"Parser","url":"modules/_test_.html#parser","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":185,"kind":65536,"name":"__type","url":"modules/_test_.html#parser.__type-3","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"test\".Parser"},{"id":186,"kind":4194304,"name":"MultipartValueSingle","url":"modules/_test_.html#multipartvaluesingle","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":187,"kind":4194304,"name":"MultipartValue","url":"modules/_test_.html#multipartvalue","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":188,"kind":4194304,"name":"HeaderValue","url":"modules/_test_.html#headervalue","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":189,"kind":4194304,"name":"Header","url":"modules/_test_.html#header","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":190,"kind":65536,"name":"__type","url":"modules/_test_.html#header.__type-2","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"test\".Header"},{"id":191,"kind":4194304,"name":"Plugin","url":"modules/_test_.html#plugin","classes":"tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":192,"kind":65536,"name":"__type","url":"modules/_test_.html#plugin.__type-4","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias tsd-is-not-exported","parent":"\"test\".Plugin"},{"id":193,"kind":32,"name":"SHAM_SYMBOL","url":"modules/_test_.html#sham_symbol","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":194,"kind":64,"name":"completeXhrPromises","url":"modules/_test_.html#completexhrpromises","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-private tsd-is-not-exported","parent":"\"test\""},{"id":195,"kind":32,"name":"SuperRequest","url":"modules/_test_.html#superrequest","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"\"test\""},{"id":196,"kind":64,"name":"error","url":"modules/_test_.html#error","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-private tsd-is-not-exported","parent":"\"test\""},{"id":197,"kind":64,"name":"isRedirect","url":"modules/_test_.html#isredirect","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-private tsd-is-not-exported","parent":"\"test\""},{"id":198,"kind":64,"name":"cleanHeader","url":"modules/_test_.html#cleanheader","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-private tsd-is-not-exported","parent":"\"test\""},{"id":199,"kind":64,"name":"initHeaders","url":"modules/_test_.html#initheaders","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-private tsd-is-not-exported","parent":"\"test\""},{"id":200,"kind":1,"name":"\"types\"","url":"modules/_types_.html","classes":"tsd-kind-module"},{"id":201,"kind":256,"name":"RequestHandlerLike","url":"interfaces/_types_.requesthandlerlike.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":202,"kind":256,"name":"LegacyServerLike","url":"interfaces/_types_.legacyserverlike.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":203,"kind":1024,"name":"listener","url":"interfaces/_types_.legacyserverlike.html#listener","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".LegacyServerLike"},{"id":204,"kind":2048,"name":"close","url":"interfaces/_types_.legacyserverlike.html#close","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"types\".LegacyServerLike"},{"id":205,"kind":256,"name":"NativeServerLike","url":"interfaces/_types_.nativeserverlike.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":206,"kind":1024,"name":"addrs","url":"interfaces/_types_.nativeserverlike.html#addrs","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".NativeServerLike"},{"id":207,"kind":2048,"name":"listenAndServe","url":"interfaces/_types_.nativeserverlike.html#listenandserve","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"types\".NativeServerLike"},{"id":208,"kind":2048,"name":"close","url":"interfaces/_types_.nativeserverlike.html#close","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"types\".NativeServerLike"},{"id":209,"kind":256,"name":"ExpressServerLike","url":"interfaces/_types_.expressserverlike.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":210,"kind":2048,"name":"address","url":"interfaces/_types_.expressserverlike.html#address","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"types\".ExpressServerLike"},{"id":211,"kind":1024,"name":"listening","url":"interfaces/_types_.expressserverlike.html#listening","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"types\".ExpressServerLike"},{"id":212,"kind":2048,"name":"close","url":"interfaces/_types_.expressserverlike.html#close","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"types\".ExpressServerLike"},{"id":213,"kind":2048,"name":"once","url":"interfaces/_types_.expressserverlike.html#once","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"types\".ExpressServerLike"},{"id":214,"kind":256,"name":"ListenerLike","url":"interfaces/_types_.listenerlike.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":215,"kind":2048,"name":"listen","url":"interfaces/_types_.listenerlike.html#listen","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"types\".ListenerLike"},{"id":216,"kind":256,"name":"ExpressListenerLike","url":"interfaces/_types_.expresslistenerlike.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"types\""},{"id":217,"kind":2048,"name":"listen","url":"interfaces/_types_.expresslistenerlike.html#listen","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"types\".ExpressListenerLike"},{"id":218,"kind":4194304,"name":"ServerLike","url":"modules/_types_.html#serverlike","classes":"tsd-kind-type-alias tsd-parent-kind-module","parent":"\"types\""},{"id":219,"kind":1,"name":"\"utils\"","url":"modules/_utils_.html","classes":"tsd-kind-module"},{"id":220,"kind":64,"name":"isString","url":"modules/_utils_.html#isstring","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"utils\""},{"id":221,"kind":64,"name":"isListener","url":"modules/_utils_.html#islistener","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"utils\""},{"id":222,"kind":64,"name":"isExpressListener","url":"modules/_utils_.html#isexpresslistener","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"utils\""},{"id":223,"kind":64,"name":"isCommonServer","url":"modules/_utils_.html#iscommonserver","classes":"tsd-kind-function tsd-parent-kind-module tsd-is-not-exported","parent":"\"utils\""},{"id":224,"kind":64,"name":"isStdLegacyServer","url":"modules/_utils_.html#isstdlegacyserver","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"utils\""},{"id":225,"kind":64,"name":"isStdNativeServer","url":"modules/_utils_.html#isstdnativeserver","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"utils\""},{"id":226,"kind":64,"name":"isExpressServer","url":"modules/_utils_.html#isexpressserver","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"utils\""},{"id":227,"kind":64,"name":"isServer","url":"modules/_utils_.html#isserver","classes":"tsd-kind-function tsd-parent-kind-module","parent":"\"utils\""}],"index":{"version":"2.3.9","fields":["name","parent"],"fieldVectors":[["name/0",[0,35.683]],["parent/0",[]],["name/1",[0,35.683]],["parent/1",[0,3.523]],["name/2",[1,39.367]],["parent/2",[]],["name/3",[2,50.373]],["parent/3",[1,3.887]],["name/4",[1,39.367]],["parent/4",[1,3.887]],["name/5",[3,35.683]],["parent/5",[]],["name/6",[3,35.683]],["parent/6",[3,3.523]],["name/7",[4,39.367]],["parent/7",[5,2.133]],["name/8",[6,50.373]],["parent/8",[5,2.133]],["name/9",[7,50.373]],["parent/9",[5,2.133]],["name/10",[8,50.373]],["parent/10",[5,2.133]],["name/11",[9,50.373]],["parent/11",[5,2.133]],["name/12",[10,50.373]],["parent/12",[5,2.133]],["name/13",[11,50.373]],["parent/13",[5,2.133]],["name/14",[12,50.373]],["parent/14",[5,2.133]],["name/15",[13,50.373]],["parent/15",[5,2.133]],["name/16",[14,50.373]],["parent/16",[5,2.133]],["name/17",[15,50.373]],["parent/17",[5,2.133]],["name/18",[16,50.373]],["parent/18",[5,2.133]],["name/19",[17,50.373]],["parent/19",[5,2.133]],["name/20",[18,50.373]],["parent/20",[5,2.133]],["name/21",[19,50.373]],["parent/21",[5,2.133]],["name/22",[20,35.775,21,32.141]],["parent/22",[5,2.133]],["name/23",[22,50.373]],["parent/23",[5,2.133]],["name/24",[23,50.373]],["parent/24",[5,2.133]],["name/25",[24,50.373]],["parent/25",[5,2.133]],["name/26",[25,50.373]],["parent/26",[5,2.133]],["name/27",[26,50.373]],["parent/27",[5,2.133]],["name/28",[21,45.255]],["parent/28",[5,2.133]],["name/29",[27,50.373]],["parent/29",[5,2.133]],["name/30",[28,50.373]],["parent/30",[5,2.133]],["name/31",[29,50.373]],["parent/31",[5,2.133]],["name/32",[30,50.373]],["parent/32",[5,2.133]],["name/33",[31,50.373]],["parent/33",[3,3.523]],["name/34",[3,35.683]],["parent/34",[3,3.523]],["name/35",[32,22.39]],["parent/35",[]],["name/36",[33,50.373]],["parent/36",[32,2.211]],["name/37",[34,45.255]],["parent/37",[35,3.258]],["name/38",[36,45.255]],["parent/38",[35,3.258]],["name/39",[37,41.884]],["parent/39",[35,3.258]],["name/40",[38,50.373]],["parent/40",[35,3.258]],["name/41",[39,50.373]],["parent/41",[35,3.258]],["name/42",[40,50.373]],["parent/42",[35,3.258]],["name/43",[41,50.373]],["parent/43",[35,3.258]],["name/44",[42,41.884]],["parent/44",[35,3.258]],["name/45",[43,50.373]],["parent/45",[32,2.211]],["name/46",[44,50.373]],["parent/46",[32,2.211]],["name/47",[45,50.373]],["parent/47",[46,2.061]],["name/48",[47,50.373]],["parent/48",[46,2.061]],["name/49",[48,50.373]],["parent/49",[46,2.061]],["name/50",[49,50.373]],["parent/50",[46,2.061]],["name/51",[50,50.373]],["parent/51",[46,2.061]],["name/52",[42,41.884]],["parent/52",[46,2.061]],["name/53",[51,50.373]],["parent/53",[46,2.061]],["name/54",[52,50.373]],["parent/54",[46,2.061]],["name/55",[4,39.367]],["parent/55",[46,2.061]],["name/56",[53,45.255]],["parent/56",[46,2.061]],["name/57",[54,50.373]],["parent/57",[46,2.061]],["name/58",[55,50.373]],["parent/58",[46,2.061]],["name/59",[56,50.373]],["parent/59",[46,2.061]],["name/60",[57,50.373]],["parent/60",[46,2.061]],["name/61",[58,50.373]],["parent/61",[46,2.061]],["name/62",[59,50.373]],["parent/62",[46,2.061]],["name/63",[60,41.884]],["parent/63",[46,2.061]],["name/64",[61,45.255]],["parent/64",[46,2.061]],["name/65",[62,50.373]],["parent/65",[46,2.061]],["name/66",[34,45.255]],["parent/66",[46,2.061]],["name/67",[63,50.373]],["parent/67",[46,2.061]],["name/68",[64,50.373]],["parent/68",[46,2.061]],["name/69",[65,50.373]],["parent/69",[46,2.061]],["name/70",[36,45.255]],["parent/70",[46,2.061]],["name/71",[66,41.884]],["parent/71",[46,2.061]],["name/72",[67,50.373]],["parent/72",[46,2.061]],["name/73",[68,50.373]],["parent/73",[46,2.061]],["name/74",[69,39.367]],["parent/74",[46,2.061]],["name/75",[70,50.373]],["parent/75",[32,2.211]],["name/76",[71,45.255]],["parent/76",[72,1.666]],["name/77",[73,45.255]],["parent/77",[72,1.666]],["name/78",[74,45.255]],["parent/78",[72,1.666]],["name/79",[37,41.884]],["parent/79",[72,1.666]],["name/80",[75,45.255]],["parent/80",[72,1.666]],["name/81",[76,45.255]],["parent/81",[72,1.666]],["name/82",[77,45.255]],["parent/82",[72,1.666]],["name/83",[78,45.255]],["parent/83",[72,1.666]],["name/84",[79,45.255]],["parent/84",[72,1.666]],["name/85",[80,45.255]],["parent/85",[72,1.666]],["name/86",[81,45.255]],["parent/86",[72,1.666]],["name/87",[82,45.255]],["parent/87",[72,1.666]],["name/88",[83,45.255]],["parent/88",[72,1.666]],["name/89",[84,45.255]],["parent/89",[72,1.666]],["name/90",[85,45.255]],["parent/90",[72,1.666]],["name/91",[86,45.255]],["parent/91",[72,1.666]],["name/92",[4,39.367]],["parent/92",[72,1.666]],["name/93",[87,45.255]],["parent/93",[72,1.666]],["name/94",[88,45.255]],["parent/94",[72,1.666]],["name/95",[60,41.884]],["parent/95",[72,1.666]],["name/96",[89,45.255]],["parent/96",[72,1.666]],["name/97",[90,45.255]],["parent/97",[72,1.666]],["name/98",[91,45.255]],["parent/98",[72,1.666]],["name/99",[92,45.255]],["parent/99",[72,1.666]],["name/100",[93,45.255]],["parent/100",[72,1.666]],["name/101",[94,45.255]],["parent/101",[72,1.666]],["name/102",[69,39.367]],["parent/102",[72,1.666]],["name/103",[95,45.255]],["parent/103",[72,1.666]],["name/104",[96,45.255]],["parent/104",[72,1.666]],["name/105",[97,45.255]],["parent/105",[72,1.666]],["name/106",[98,45.255]],["parent/106",[72,1.666]],["name/107",[99,45.255]],["parent/107",[72,1.666]],["name/108",[100,45.255]],["parent/108",[72,1.666]],["name/109",[101,45.255]],["parent/109",[72,1.666]],["name/110",[66,41.884]],["parent/110",[72,1.666]],["name/111",[102,45.255]],["parent/111",[72,1.666]],["name/112",[103,45.255]],["parent/112",[72,1.666]],["name/113",[104,45.255]],["parent/113",[72,1.666]],["name/114",[105,45.255]],["parent/114",[72,1.666]],["name/115",[106,45.255]],["parent/115",[72,1.666]],["name/116",[107,45.255]],["parent/116",[72,1.666]],["name/117",[108,45.255]],["parent/117",[72,1.666]],["name/118",[32,22.39]],["parent/118",[32,2.211]],["name/119",[109,50.373]],["parent/119",[110,1.35]],["name/120",[69,39.367]],["parent/120",[110,1.35]],["name/121",[111,50.373]],["parent/121",[110,1.35]],["name/122",[112,50.373]],["parent/122",[110,1.35]],["name/123",[113,50.373]],["parent/123",[110,1.35]],["name/124",[114,50.373]],["parent/124",[110,1.35]],["name/125",[115,50.373]],["parent/125",[110,1.35]],["name/126",[116,50.373]],["parent/126",[110,1.35]],["name/127",[75,45.255]],["parent/127",[110,1.35]],["name/128",[71,45.255]],["parent/128",[110,1.35]],["name/129",[117,50.373]],["parent/129",[110,1.35]],["name/130",[118,50.373]],["parent/130",[110,1.35]],["name/131",[61,45.255]],["parent/131",[110,1.35]],["name/132",[85,45.255]],["parent/132",[110,1.35]],["name/133",[119,50.373]],["parent/133",[110,1.35]],["name/134",[120,50.373]],["parent/134",[110,1.35]],["name/135",[121,50.373]],["parent/135",[110,1.35]],["name/136",[122,50.373]],["parent/136",[110,1.35]],["name/137",[123,50.373]],["parent/137",[110,1.35]],["name/138",[73,45.255]],["parent/138",[110,1.35]],["name/139",[74,45.255]],["parent/139",[110,1.35]],["name/140",[37,41.884]],["parent/140",[110,1.35]],["name/141",[76,45.255]],["parent/141",[110,1.35]],["name/142",[77,45.255]],["parent/142",[110,1.35]],["name/143",[78,45.255]],["parent/143",[110,1.35]],["name/144",[79,45.255]],["parent/144",[110,1.35]],["name/145",[80,45.255]],["parent/145",[110,1.35]],["name/146",[81,45.255]],["parent/146",[110,1.35]],["name/147",[82,45.255]],["parent/147",[110,1.35]],["name/148",[83,45.255]],["parent/148",[110,1.35]],["name/149",[84,45.255]],["parent/149",[110,1.35]],["name/150",[86,45.255]],["parent/150",[110,1.35]],["name/151",[4,39.367]],["parent/151",[110,1.35]],["name/152",[87,45.255]],["parent/152",[110,1.35]],["name/153",[88,45.255]],["parent/153",[110,1.35]],["name/154",[60,41.884]],["parent/154",[110,1.35]],["name/155",[89,45.255]],["parent/155",[110,1.35]],["name/156",[90,45.255]],["parent/156",[110,1.35]],["name/157",[91,45.255]],["parent/157",[110,1.35]],["name/158",[92,45.255]],["parent/158",[110,1.35]],["name/159",[93,45.255]],["parent/159",[110,1.35]],["name/160",[94,45.255]],["parent/160",[110,1.35]],["name/161",[69,39.367]],["parent/161",[110,1.35]],["name/162",[95,45.255]],["parent/162",[110,1.35]],["name/163",[96,45.255]],["parent/163",[110,1.35]],["name/164",[97,45.255]],["parent/164",[110,1.35]],["name/165",[98,45.255]],["parent/165",[110,1.35]],["name/166",[99,45.255]],["parent/166",[110,1.35]],["name/167",[100,45.255]],["parent/167",[110,1.35]],["name/168",[101,45.255]],["parent/168",[110,1.35]],["name/169",[66,41.884]],["parent/169",[110,1.35]],["name/170",[102,45.255]],["parent/170",[110,1.35]],["name/171",[103,45.255]],["parent/171",[110,1.35]],["name/172",[104,45.255]],["parent/172",[110,1.35]],["name/173",[105,45.255]],["parent/173",[110,1.35]],["name/174",[106,45.255]],["parent/174",[110,1.35]],["name/175",[107,45.255]],["parent/175",[110,1.35]],["name/176",[108,45.255]],["parent/176",[110,1.35]],["name/177",[124,50.373]],["parent/177",[32,2.211]],["name/178",[125,50.373]],["parent/178",[32,2.211]],["name/179",[126,35.683]],["parent/179",[127,4.973]],["name/180",[128,50.373]],["parent/180",[32,2.211]],["name/181",[126,35.683]],["parent/181",[129,4.973]],["name/182",[130,50.373]],["parent/182",[32,2.211]],["name/183",[126,35.683]],["parent/183",[131,4.973]],["name/184",[132,50.373]],["parent/184",[32,2.211]],["name/185",[126,35.683]],["parent/185",[133,4.973]],["name/186",[134,50.373]],["parent/186",[32,2.211]],["name/187",[135,50.373]],["parent/187",[32,2.211]],["name/188",[136,50.373]],["parent/188",[32,2.211]],["name/189",[53,45.255]],["parent/189",[32,2.211]],["name/190",[126,35.683]],["parent/190",[137,4.973]],["name/191",[138,50.373]],["parent/191",[32,2.211]],["name/192",[126,35.683]],["parent/192",[139,4.973]],["name/193",[140,50.373]],["parent/193",[32,2.211]],["name/194",[141,50.373]],["parent/194",[32,2.211]],["name/195",[142,50.373]],["parent/195",[32,2.211]],["name/196",[42,41.884]],["parent/196",[32,2.211]],["name/197",[143,50.373]],["parent/197",[32,2.211]],["name/198",[144,50.373]],["parent/198",[32,2.211]],["name/199",[145,50.373]],["parent/199",[32,2.211]],["name/200",[146,32.996]],["parent/200",[]],["name/201",[147,50.373]],["parent/201",[146,3.258]],["name/202",[148,50.373]],["parent/202",[146,3.258]],["name/203",[149,50.373]],["parent/203",[150,4.468]],["name/204",[0,35.683]],["parent/204",[150,4.468]],["name/205",[151,50.373]],["parent/205",[146,3.258]],["name/206",[152,50.373]],["parent/206",[153,4.135]],["name/207",[154,50.373]],["parent/207",[153,4.135]],["name/208",[0,35.683]],["parent/208",[153,4.135]],["name/209",[155,50.373]],["parent/209",[146,3.258]],["name/210",[156,50.373]],["parent/210",[157,3.887]],["name/211",[158,50.373]],["parent/211",[157,3.887]],["name/212",[0,35.683]],["parent/212",[157,3.887]],["name/213",[159,50.373]],["parent/213",[157,3.887]],["name/214",[160,50.373]],["parent/214",[146,3.258]],["name/215",[161,45.255]],["parent/215",[162,4.973]],["name/216",[163,50.373]],["parent/216",[146,3.258]],["name/217",[161,45.255]],["parent/217",[164,4.973]],["name/218",[165,50.373]],["parent/218",[146,3.258]],["name/219",[166,31.881]],["parent/219",[]],["name/220",[167,50.373]],["parent/220",[166,3.148]],["name/221",[168,50.373]],["parent/221",[166,3.148]],["name/222",[169,50.373]],["parent/222",[166,3.148]],["name/223",[170,50.373]],["parent/223",[166,3.148]],["name/224",[171,50.373]],["parent/224",[166,3.148]],["name/225",[172,50.373]],["parent/225",[166,3.148]],["name/226",[173,50.373]],["parent/226",[166,3.148]],["name/227",[174,50.373]],["parent/227",[166,3.148]]],"invertedIndex":[["__type",{"_index":126,"name":{"179":{},"181":{},"183":{},"185":{},"190":{},"192":{}},"parent":{}}],["abort",{"_index":76,"name":{"81":{},"141":{}},"parent":{}}],["accept",{"_index":77,"name":{"82":{},"142":{}},"parent":{}}],["accepted",{"_index":45,"name":{"47":{}},"parent":{}}],["address",{"_index":156,"name":{"210":{}},"parent":{}}],["addrs",{"_index":152,"name":{"206":{}},"parent":{}}],["agent",{"_index":73,"name":{"77":{},"138":{}},"parent":{}}],["app",{"_index":115,"name":{"125":{}},"parent":{}}],["assert",{"_index":119,"name":{"133":{}},"parent":{}}],["assertbody",{"_index":120,"name":{"134":{}},"parent":{}}],["assertfunction",{"_index":123,"name":{"137":{}},"parent":{}}],["assertheader",{"_index":121,"name":{"135":{}},"parent":{}}],["asserts",{"_index":109,"name":{"119":{}},"parent":{}}],["assertstatus",{"_index":122,"name":{"136":{}},"parent":{}}],["attach",{"_index":78,"name":{"83":{},"143":{}},"parent":{}}],["auth",{"_index":79,"name":{"84":{},"144":{}},"parent":{}}],["badrequest",{"_index":47,"name":{"48":{}},"parent":{}}],["body",{"_index":48,"name":{"49":{}},"parent":{}}],["buffer",{"_index":80,"name":{"85":{},"145":{}},"parent":{}}],["ca",{"_index":81,"name":{"86":{},"146":{}},"parent":{}}],["callbackhandler",{"_index":128,"name":{"180":{}},"parent":{}}],["catch",{"_index":108,"name":{"117":{},"176":{}},"parent":{}}],["cert",{"_index":82,"name":{"87":{},"147":{}},"parent":{}}],["charset",{"_index":49,"name":{"50":{}},"parent":{}}],["checkout",{"_index":12,"name":{"14":{}},"parent":{}}],["cleanheader",{"_index":144,"name":{"198":{}},"parent":{}}],["cleartimeout",{"_index":83,"name":{"88":{},"148":{}},"parent":{}}],["clienterror",{"_index":50,"name":{"51":{}},"parent":{}}],["close",{"_index":0,"name":{"0":{},"1":{},"204":{},"208":{},"212":{}},"parent":{"1":{}}}],["completexhrpromises",{"_index":141,"name":{"194":{}},"parent":{}}],["connect",{"_index":13,"name":{"15":{}},"parent":{}}],["constructor",{"_index":71,"name":{"76":{},"128":{}},"parent":{}}],["cookies",{"_index":74,"name":{"78":{},"139":{}},"parent":{}}],["copy",{"_index":14,"name":{"16":{}},"parent":{}}],["delete",{"_index":8,"name":{"10":{}},"parent":{}}],["disabletlscerts",{"_index":84,"name":{"89":{},"149":{}},"parent":{}}],["end",{"_index":85,"name":{"90":{},"132":{}},"parent":{}}],["error",{"_index":42,"name":{"44":{},"52":{},"196":{}},"parent":{}}],["expect",{"_index":118,"name":{"130":{}},"parent":{}}],["expectchecker",{"_index":125,"name":{"178":{}},"parent":{}}],["expresslistenerlike",{"_index":163,"name":{"216":{}},"parent":{}}],["expressserverlike",{"_index":155,"name":{"209":{}},"parent":{}}],["field",{"_index":86,"name":{"91":{},"150":{}},"parent":{}}],["files",{"_index":51,"name":{"53":{}},"parent":{}}],["forbidden",{"_index":52,"name":{"54":{}},"parent":{}}],["get",{"_index":4,"name":{"7":{},"55":{},"92":{},"151":{}},"parent":{}}],["getxhr",{"_index":2,"name":{"3":{}},"parent":{}}],["head",{"_index":11,"name":{"13":{}},"parent":{}}],["header",{"_index":53,"name":{"56":{},"189":{}},"parent":{}}],["headers",{"_index":54,"name":{"57":{}},"parent":{}}],["headervalue",{"_index":136,"name":{"188":{}},"parent":{}}],["http2",{"_index":87,"name":{"93":{},"152":{}},"parent":{}}],["httperror",{"_index":33,"name":{"36":{}},"parent":{}}],["info",{"_index":55,"name":{"58":{}},"parent":{}}],["initheaders",{"_index":145,"name":{"199":{}},"parent":{}}],["irequest",{"_index":70,"name":{"75":{}},"parent":{}}],["iresponse",{"_index":44,"name":{"46":{}},"parent":{}}],["iscommonserver",{"_index":170,"name":{"223":{}},"parent":{}}],["isexpresslistener",{"_index":169,"name":{"222":{}},"parent":{}}],["isexpressserver",{"_index":173,"name":{"226":{}},"parent":{}}],["islistener",{"_index":168,"name":{"221":{}},"parent":{}}],["isredirect",{"_index":143,"name":{"197":{}},"parent":{}}],["isserver",{"_index":174,"name":{"227":{}},"parent":{}}],["isstdlegacyserver",{"_index":171,"name":{"224":{}},"parent":{}}],["isstdnativeserver",{"_index":172,"name":{"225":{}},"parent":{}}],["isstring",{"_index":167,"name":{"220":{}},"parent":{}}],["key",{"_index":88,"name":{"94":{},"153":{}},"parent":{}}],["legacyserverlike",{"_index":148,"name":{"202":{}},"parent":{}}],["links",{"_index":56,"name":{"59":{}},"parent":{}}],["listen",{"_index":161,"name":{"215":{},"217":{}},"parent":{}}],["listenandserve",{"_index":154,"name":{"207":{}},"parent":{}}],["listener",{"_index":149,"name":{"203":{}},"parent":{}}],["listenerlike",{"_index":160,"name":{"214":{}},"parent":{}}],["listening",{"_index":158,"name":{"211":{}},"parent":{}}],["lock",{"_index":15,"name":{"17":{}},"parent":{}}],["m",{"_index":20,"name":{"22":{}},"parent":{}}],["maxresponsesize",{"_index":106,"name":{"115":{},"174":{}},"parent":{}}],["merge",{"_index":16,"name":{"18":{}},"parent":{}}],["message",{"_index":40,"name":{"42":{}},"parent":{}}],["method",{"_index":37,"name":{"39":{},"79":{},"140":{}},"parent":{}}],["mkactivity",{"_index":17,"name":{"19":{}},"parent":{}}],["mkcol",{"_index":18,"name":{"20":{}},"parent":{}}],["move",{"_index":19,"name":{"21":{}},"parent":{}}],["multipartvalue",{"_index":135,"name":{"187":{}},"parent":{}}],["multipartvaluesingle",{"_index":134,"name":{"186":{}},"parent":{}}],["name",{"_index":39,"name":{"41":{}},"parent":{}}],["nativeserverlike",{"_index":151,"name":{"205":{}},"parent":{}}],["nocontent",{"_index":57,"name":{"60":{}},"parent":{}}],["notacceptable",{"_index":58,"name":{"61":{}},"parent":{}}],["notfound",{"_index":59,"name":{"62":{}},"parent":{}}],["notify",{"_index":22,"name":{"23":{}},"parent":{}}],["ok",{"_index":60,"name":{"63":{},"95":{},"154":{}},"parent":{}}],["on",{"_index":89,"name":{"96":{},"155":{}},"parent":{}}],["once",{"_index":159,"name":{"213":{}},"parent":{}}],["options",{"_index":10,"name":{"12":{}},"parent":{}}],["override",{"_index":116,"name":{"126":{}},"parent":{}}],["parse",{"_index":90,"name":{"97":{},"156":{}},"parent":{}}],["parser",{"_index":132,"name":{"184":{}},"parent":{}}],["part",{"_index":91,"name":{"98":{},"157":{}},"parent":{}}],["patch",{"_index":9,"name":{"11":{}},"parent":{}}],["path",{"_index":38,"name":{"40":{}},"parent":{}}],["pfx",{"_index":92,"name":{"99":{},"158":{}},"parent":{}}],["pipe",{"_index":93,"name":{"100":{},"159":{}},"parent":{}}],["plugin",{"_index":138,"name":{"191":{}},"parent":{}}],["post",{"_index":6,"name":{"8":{}},"parent":{}}],["propfind",{"_index":23,"name":{"24":{}},"parent":{}}],["proppatch",{"_index":24,"name":{"25":{}},"parent":{}}],["purge",{"_index":25,"name":{"26":{}},"parent":{}}],["put",{"_index":7,"name":{"9":{}},"parent":{}}],["query",{"_index":94,"name":{"101":{},"160":{}},"parent":{}}],["random",{"_index":124,"name":{"177":{}},"parent":{}}],["redirect",{"_index":61,"name":{"64":{},"131":{}},"parent":{}}],["redirectlist",{"_index":111,"name":{"121":{}},"parent":{}}],["redirects",{"_index":69,"name":{"74":{},"102":{},"120":{},"161":{}},"parent":{}}],["report",{"_index":26,"name":{"27":{}},"parent":{}}],["requesthandlerlike",{"_index":147,"name":{"201":{}},"parent":{}}],["responsetype",{"_index":95,"name":{"103":{},"162":{}},"parent":{}}],["retry",{"_index":96,"name":{"104":{},"163":{}},"parent":{}}],["search",{"_index":21,"name":{"22":{},"28":{}},"parent":{}}],["send",{"_index":97,"name":{"105":{},"164":{}},"parent":{}}],["serialize",{"_index":98,"name":{"106":{},"165":{}},"parent":{}}],["serializer",{"_index":130,"name":{"182":{}},"parent":{}}],["server",{"_index":112,"name":{"122":{}},"parent":{}}],["servererror",{"_index":62,"name":{"65":{}},"parent":{}}],["serverlike",{"_index":165,"name":{"218":{}},"parent":{}}],["serversetuppromise",{"_index":113,"name":{"123":{}},"parent":{}}],["set",{"_index":99,"name":{"107":{},"166":{}},"parent":{}}],["setserveraddress",{"_index":117,"name":{"129":{}},"parent":{}}],["sham_symbol",{"_index":140,"name":{"193":{}},"parent":{}}],["stack",{"_index":41,"name":{"43":{}},"parent":{}}],["startmanagedserver",{"_index":31,"name":{"33":{}},"parent":{}}],["status",{"_index":34,"name":{"37":{},"66":{}},"parent":{}}],["statuscode",{"_index":63,"name":{"67":{}},"parent":{}}],["statustext",{"_index":65,"name":{"69":{}},"parent":{}}],["statustype",{"_index":64,"name":{"68":{}},"parent":{}}],["subscribe",{"_index":27,"name":{"29":{}},"parent":{}}],["superagent",{"_index":1,"name":{"2":{},"4":{}},"parent":{"3":{},"4":{}}}],["superdeno",{"_index":3,"name":{"5":{},"6":{},"34":{}},"parent":{"6":{},"33":{},"34":{}}}],["superdeno\".superdeno",{"_index":5,"name":{},"parent":{"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":{}}}],["superrequest",{"_index":142,"name":{"195":{}},"parent":{}}],["test",{"_index":32,"name":{"35":{},"118":{}},"parent":{"36":{},"45":{},"46":{},"75":{},"118":{},"177":{},"178":{},"180":{},"182":{},"184":{},"186":{},"187":{},"188":{},"189":{},"191":{},"193":{},"194":{},"195":{},"196":{},"197":{},"198":{},"199":{}}}],["test\".callbackhandler",{"_index":129,"name":{},"parent":{"181":{}}}],["test\".expectchecker",{"_index":127,"name":{},"parent":{"179":{}}}],["test\".header",{"_index":137,"name":{},"parent":{"190":{}}}],["test\".httperror",{"_index":35,"name":{},"parent":{"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{}}}],["test\".irequest",{"_index":72,"name":{},"parent":{"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{}}}],["test\".iresponse",{"_index":46,"name":{},"parent":{"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}}}],["test\".parser",{"_index":133,"name":{},"parent":{"185":{}}}],["test\".plugin",{"_index":139,"name":{},"parent":{"192":{}}}],["test\".serializer",{"_index":131,"name":{},"parent":{"183":{}}}],["test\".test",{"_index":110,"name":{},"parent":{"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"139":{},"140":{},"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{},"164":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"173":{},"174":{},"175":{},"176":{}}}],["text",{"_index":36,"name":{"38":{},"70":{}},"parent":{}}],["then",{"_index":107,"name":{"116":{},"175":{}},"parent":{}}],["timeout",{"_index":100,"name":{"108":{},"167":{}},"parent":{}}],["trace",{"_index":28,"name":{"30":{}},"parent":{}}],["trustlocalhost",{"_index":101,"name":{"109":{},"168":{}},"parent":{}}],["type",{"_index":66,"name":{"71":{},"110":{},"169":{}},"parent":{}}],["types",{"_index":146,"name":{"200":{}},"parent":{"201":{},"202":{},"205":{},"209":{},"214":{},"216":{},"218":{}}}],["types\".expresslistenerlike",{"_index":164,"name":{},"parent":{"217":{}}}],["types\".expressserverlike",{"_index":157,"name":{},"parent":{"210":{},"211":{},"212":{},"213":{}}}],["types\".legacyserverlike",{"_index":150,"name":{},"parent":{"203":{},"204":{}}}],["types\".listenerlike",{"_index":162,"name":{},"parent":{"215":{}}}],["types\".nativeserverlike",{"_index":153,"name":{},"parent":{"206":{},"207":{},"208":{}}}],["unauthorized",{"_index":67,"name":{"72":{}},"parent":{}}],["unlock",{"_index":29,"name":{"31":{}},"parent":{}}],["unset",{"_index":102,"name":{"111":{},"170":{}},"parent":{}}],["unsubscribe",{"_index":30,"name":{"32":{}},"parent":{}}],["url",{"_index":75,"name":{"80":{},"127":{}},"parent":{}}],["urlsetuppromise",{"_index":114,"name":{"124":{}},"parent":{}}],["use",{"_index":103,"name":{"112":{},"171":{}},"parent":{}}],["utils",{"_index":166,"name":{"219":{}},"parent":{"220":{},"221":{},"222":{},"223":{},"224":{},"225":{},"226":{},"227":{}}}],["withcredentials",{"_index":104,"name":{"113":{},"172":{}},"parent":{}}],["write",{"_index":105,"name":{"114":{},"173":{}},"parent":{}}],["xhr",{"_index":68,"name":{"73":{}},"parent":{}}],["xmlhttprequest",{"_index":43,"name":{"45":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file diff --git a/docs/classes/_test_.test.html b/docs/classes/_test_.test.html index 144f26e..374a03d 100644 --- a/docs/classes/_test_.test.html +++ b/docs/classes/_test_.test.html @@ -111,6 +111,7 @@

Properties

  • app
  • cookies
  • method
  • +
  • override
  • url
  • @@ -181,7 +182,7 @@

    constructor

    Parameters

    @@ -215,7 +216,7 @@

    Private #asserts

    #asserts: any[]
    @@ -225,7 +226,7 @@

    Private #redirectList

    #redirectList: string[]
    @@ -235,7 +236,7 @@

    Private #redirects

    #redirects: number
    @@ -245,7 +246,7 @@

    Private #server

    #server: ServerLike
    @@ -255,7 +256,7 @@

    Private #serverSetupP
    #serverSetupPromise: Promise<void>
    @@ -265,7 +266,7 @@

    Private #urlSetupProm
    #urlSetupPromise: Promise<void>
    @@ -275,7 +276,7 @@

    app

    app: string | ListenerLike | ServerLike
    @@ -286,7 +287,7 @@

    cookies

    @@ -297,10 +298,34 @@

    method

    +
    + +

    override

    +
    override: any
    + +
    +
    +

    Defer invoking superagent's .end() until + the server is listening.

    +
    +
    +
    param
    +
    +
    returns
    +

    for chaining

    +
    +
    +
    +

    url

    @@ -308,7 +333,7 @@

    url

    @@ -325,7 +350,7 @@

    Private #assert

  • @@ -359,7 +384,7 @@

    Private #assertBody

  • @@ -394,7 +419,7 @@

    Private #assertFunction
    @@ -429,7 +454,7 @@

    Private #assertHeader

  • @@ -472,7 +497,7 @@

    Private #assertStatus

  • @@ -507,7 +532,7 @@

    Private #redirect

  • Parameters

    @@ -533,7 +558,7 @@

    Private #setServerAdd
  • @@ -588,7 +613,7 @@

    abort

    Returns void

    @@ -606,7 +631,7 @@

    accept

    Parameters

    @@ -630,7 +655,7 @@

    agent

    Parameters

    @@ -654,7 +679,7 @@

    attach

    Parameters

    @@ -685,7 +710,7 @@

    auth

    Parameters

    @@ -711,7 +736,7 @@

    Returns this

    Inherited from IRequest.auth

    Parameters

    @@ -743,7 +768,7 @@

    buffer

    Parameters

    @@ -767,7 +792,7 @@

    ca

    Parameters

    @@ -791,7 +816,7 @@

    catch

    @@ -830,7 +855,7 @@

    cert

    Parameters

    @@ -854,7 +879,7 @@

    clearTimeout

    Returns this

    @@ -872,7 +897,7 @@

    disableTLSCerts

    Returns this

    @@ -890,15 +915,9 @@

    end

    -
    -
    -

    Defer invoking superagent's .end() until - the server is listening.

    -
    -

    Parameters

    @@ -924,7 +942,7 @@

    expect

  • @@ -947,7 +965,7 @@

    Returns this
    @@ -974,7 +992,7 @@

    Returns this
    @@ -1004,7 +1022,7 @@

    Returns this
    @@ -1032,7 +1050,7 @@

    Returns this
    @@ -1073,7 +1091,7 @@

    field

    Parameters

    @@ -1091,7 +1109,7 @@

    Returns this

    Inherited from IRequest.field

    Parameters

    @@ -1120,7 +1138,7 @@

    get

    Parameters

    @@ -1144,7 +1162,7 @@

    http2

    Parameters

    @@ -1168,7 +1186,7 @@

    key

    Parameters

    @@ -1192,7 +1210,7 @@

    maxResponseSize

    Parameters

    @@ -1216,7 +1234,7 @@

    ok

    Parameters

    @@ -1261,7 +1279,7 @@

    on

    Parameters

    @@ -1297,7 +1315,7 @@

    Returns this

    Inherited from IRequest.on

    Parameters

    @@ -1333,7 +1351,7 @@

    Returns this

    Inherited from IRequest.on

    Parameters

    @@ -1369,7 +1387,7 @@

    Returns this

    Inherited from IRequest.on

    Parameters

    @@ -1414,7 +1432,7 @@

    parse

    Parameters

    @@ -1438,7 +1456,7 @@

    part

    Returns this

    @@ -1456,7 +1474,7 @@

    pfx

    Parameters

    @@ -1480,7 +1498,7 @@

    pipe

    Parameters

    @@ -1507,7 +1525,7 @@

    query

    Parameters

    @@ -1531,7 +1549,7 @@

    redirects

    Parameters

    @@ -1555,7 +1573,7 @@

    responseType

    Parameters

    @@ -1579,7 +1597,7 @@

    retry

    Parameters

    @@ -1606,7 +1624,7 @@

    send

    Parameters

    @@ -1630,7 +1648,7 @@

    serialize

    Parameters

    @@ -1656,7 +1674,7 @@

    set

    Parameters

    @@ -1671,7 +1689,7 @@

    Returns this

    Inherited from IRequest.set

    Parameters

    @@ -1689,7 +1707,7 @@

    Returns this

    Inherited from IRequest.set

    Parameters

    @@ -1716,7 +1734,7 @@

    then

    @@ -1764,7 +1782,7 @@

    timeout

    Parameters

    @@ -1788,7 +1806,7 @@

    trustLocalhost

    Parameters

    @@ -1812,7 +1830,7 @@

    type

    Parameters

    @@ -1836,7 +1854,7 @@

    unset

    Parameters

    @@ -1860,7 +1878,7 @@

    use

    Parameters

    @@ -1884,7 +1902,7 @@

    withCredentials

    Returns this

    @@ -1902,7 +1920,7 @@

    write

    Parameters

    @@ -1983,6 +2001,9 @@

    Returns boolean method

  • +
  • + override +
  • url
  • diff --git a/docs/index.html b/docs/index.html index 59569d1..a9912d2 100644 --- a/docs/index.html +++ b/docs/index.html @@ -82,7 +82,7 @@

    SuperDeno

    SuperDeno latest /x/ version - Minimum supported Deno version + Minimum supported Deno version SuperDeno dependency count SuperDeno dependency outdatedness SuperDeno cached size @@ -149,7 +149,7 @@

    Installation

    SuperDeno is also available on nest.land, a package registry for Deno on the Blockchain.

    -

    Note: All examples in this README are using the unversioned form of the import URL. In production you should always use the versioned import form such as https://deno.land/x/superdeno@4.9.0/mod.ts.

    +

    Note: All examples in this README are using the unversioned form of the import URL. In production you should always use the versioned import form such as https://deno.land/x/superdeno@5.0.0/mod.ts.

    Examples

    diff --git a/docs/interfaces/_superdeno_.superdeno.html b/docs/interfaces/_superdeno_.superdeno.html index 7118b5a..10f1f3c 100644 --- a/docs/interfaces/_superdeno_.superdeno.html +++ b/docs/interfaces/_superdeno_.superdeno.html @@ -133,7 +133,7 @@

    checkout

  • Parameters

    @@ -156,7 +156,7 @@

    connect

  • Parameters

    @@ -179,7 +179,7 @@

    copy

  • Parameters

    @@ -202,7 +202,7 @@

    delete

  • Parameters

    @@ -225,7 +225,7 @@

    get

  • Parameters

    @@ -248,7 +248,7 @@

    head

  • Parameters

    @@ -271,7 +271,7 @@

    lock

  • Parameters

    @@ -294,7 +294,7 @@

    m-search

  • Parameters

    @@ -317,7 +317,7 @@

    merge

  • Parameters

    @@ -340,7 +340,7 @@

    mkactivity

  • Parameters

    @@ -363,7 +363,7 @@

    mkcol

  • Parameters

    @@ -386,7 +386,7 @@

    move

  • Parameters

    @@ -409,7 +409,7 @@

    notify

  • Parameters

    @@ -432,7 +432,7 @@

    options

  • Parameters

    @@ -455,7 +455,7 @@

    patch

  • Parameters

    @@ -478,7 +478,7 @@

    post

  • Parameters

    @@ -501,7 +501,7 @@

    propfind

  • Parameters

    @@ -524,7 +524,7 @@

    proppatch

  • Parameters

    @@ -547,7 +547,7 @@

    purge

  • Parameters

    @@ -570,7 +570,7 @@

    put

  • Parameters

    @@ -593,7 +593,7 @@

    report

  • Parameters

    @@ -616,7 +616,7 @@

    search

  • Parameters

    @@ -639,7 +639,7 @@

    subscribe

  • Parameters

    @@ -662,7 +662,7 @@

    trace

  • Parameters

    @@ -685,7 +685,7 @@

    unlock

  • Parameters

    @@ -708,7 +708,7 @@

    unsubscribe

  • Parameters

    diff --git a/docs/interfaces/_test_.httperror.html b/docs/interfaces/_test_.httperror.html index 45b7430..445bd95 100644 --- a/docs/interfaces/_test_.httperror.html +++ b/docs/interfaces/_test_.httperror.html @@ -121,7 +121,7 @@

    Error

    Error: ErrorConstructor
    @@ -132,7 +132,7 @@

    message

    @@ -142,7 +142,7 @@

    method

    method: string
    @@ -153,7 +153,7 @@

    name

    @@ -163,7 +163,7 @@

    path

    path: string
    @@ -174,7 +174,7 @@

    Optional stack

    @@ -184,7 +184,7 @@

    status

    status: number
    @@ -194,7 +194,7 @@

    text

    text: string
    diff --git a/docs/interfaces/_test_.irequest.html b/docs/interfaces/_test_.irequest.html index 72dabf0..a64c588 100644 --- a/docs/interfaces/_test_.irequest.html +++ b/docs/interfaces/_test_.irequest.html @@ -161,7 +161,7 @@

    constructor

  • @@ -195,7 +195,7 @@

    cookies

    cookies: string
    @@ -205,7 +205,7 @@

    method

    method: string
    @@ -215,7 +215,7 @@

    url

    url: string
    @@ -232,7 +232,7 @@

    abort

  • Returns void

    @@ -249,7 +249,7 @@

    accept

  • Parameters

    @@ -272,7 +272,7 @@

    agent

  • Parameters

    @@ -295,7 +295,7 @@

    attach

  • Parameters

    @@ -325,7 +325,7 @@

    auth

  • Parameters

    @@ -350,7 +350,7 @@

    Returns this

    Parameters

    @@ -381,7 +381,7 @@

    buffer

  • Parameters

    @@ -404,7 +404,7 @@

    ca

  • Parameters

    @@ -428,7 +428,7 @@

    catch

    @@ -466,7 +466,7 @@

    cert

  • Parameters

    @@ -489,7 +489,7 @@

    clearTimeout

  • Returns this

    @@ -506,7 +506,7 @@

    disableTLSCerts

  • Returns this

    @@ -523,7 +523,7 @@

    end

  • Parameters

    @@ -547,7 +547,7 @@

    field

  • Parameters

    @@ -564,7 +564,7 @@

    Returns this

    Parameters

    @@ -592,7 +592,7 @@

    get

  • Parameters

    @@ -615,7 +615,7 @@

    http2

  • Parameters

    @@ -638,7 +638,7 @@

    key

  • Parameters

    @@ -661,7 +661,7 @@

    maxResponseSize

  • Parameters

    @@ -684,7 +684,7 @@

    ok

  • Parameters

    @@ -728,7 +728,7 @@

    on

  • Parameters

    @@ -763,7 +763,7 @@

    Returns this

    Parameters

    @@ -798,7 +798,7 @@

    Returns this

    Parameters

    @@ -833,7 +833,7 @@

    Returns this

    Parameters

    @@ -877,7 +877,7 @@

    parse

  • Parameters

    @@ -900,7 +900,7 @@

    part

  • Returns this

    @@ -917,7 +917,7 @@

    pfx

  • Parameters

    @@ -940,7 +940,7 @@

    pipe

  • Parameters

    @@ -966,7 +966,7 @@

    query

  • Parameters

    @@ -989,7 +989,7 @@

    redirects

  • Parameters

    @@ -1012,7 +1012,7 @@

    responseType

  • Parameters

    @@ -1035,7 +1035,7 @@

    retry

  • Parameters

    @@ -1061,7 +1061,7 @@

    send

  • Parameters

    @@ -1084,7 +1084,7 @@

    serialize

  • Parameters

    @@ -1109,7 +1109,7 @@

    set

  • Parameters

    @@ -1123,7 +1123,7 @@

    Returns this

    Parameters

    @@ -1140,7 +1140,7 @@

    Returns this

    Parameters

    @@ -1167,7 +1167,7 @@

    then

    @@ -1214,7 +1214,7 @@

    timeout

  • Parameters

    @@ -1237,7 +1237,7 @@

    trustLocalhost

  • Parameters

    @@ -1260,7 +1260,7 @@

    type

  • Parameters

    @@ -1283,7 +1283,7 @@

    unset

  • Parameters

    @@ -1306,7 +1306,7 @@

    use

  • Parameters

    @@ -1329,7 +1329,7 @@

    withCredentials

  • Returns this

    @@ -1346,7 +1346,7 @@

    write

  • Parameters

    diff --git a/docs/interfaces/_test_.iresponse.html b/docs/interfaces/_test_.iresponse.html index 85ab659..937626b 100644 --- a/docs/interfaces/_test_.iresponse.html +++ b/docs/interfaces/_test_.iresponse.html @@ -128,7 +128,7 @@

    accepted

    accepted: boolean
    @@ -138,7 +138,7 @@

    badRequest

    badRequest: boolean
    @@ -148,7 +148,7 @@

    body

    body: any
    @@ -158,7 +158,7 @@

    charset

    charset: string
    @@ -168,7 +168,7 @@

    clientError

    clientError: boolean
    @@ -178,7 +178,7 @@

    error

    error: false | HTTPError
    @@ -188,7 +188,7 @@

    files

    files: any
    @@ -198,7 +198,7 @@

    forbidden

    forbidden: boolean
    @@ -208,7 +208,7 @@

    header

    header: Header
    @@ -218,7 +218,7 @@

    headers

    headers: Header
    @@ -228,7 +228,7 @@

    info

    info: boolean
    @@ -238,7 +238,7 @@

    links

    links: object
    @@ -248,7 +248,7 @@

    noContent

    noContent: boolean
    @@ -258,7 +258,7 @@

    notAcceptable

    notAcceptable: boolean
    @@ -268,7 +268,7 @@

    notFound

    notFound: boolean
    @@ -278,7 +278,7 @@

    ok

    ok: boolean
    @@ -288,7 +288,7 @@

    redirect

    redirect: boolean
    @@ -298,7 +298,7 @@

    redirects

    redirects: string[]
    @@ -308,7 +308,7 @@

    serverError

    serverError: boolean
    @@ -318,7 +318,7 @@

    status

    status: number
    @@ -328,7 +328,7 @@

    statusCode

    statusCode: number
    @@ -338,7 +338,7 @@

    statusText

    statusText: string
    @@ -348,7 +348,7 @@

    statusType

    statusType: number
    @@ -358,7 +358,7 @@

    text

    text: string
    @@ -368,7 +368,7 @@

    type

    type: string
    @@ -378,7 +378,7 @@

    unauthorized

    unauthorized: boolean
    @@ -388,7 +388,7 @@

    xhr

    @@ -405,7 +405,7 @@

    get

  • Parameters

    diff --git a/docs/interfaces/_types_.expresslistenerlike.html b/docs/interfaces/_types_.expresslistenerlike.html index fdb2dbe..ee55f64 100644 --- a/docs/interfaces/_types_.expresslistenerlike.html +++ b/docs/interfaces/_types_.expresslistenerlike.html @@ -100,7 +100,7 @@

    listen

  • Parameters

    diff --git a/docs/interfaces/_types_.expressserverlike.html b/docs/interfaces/_types_.expressserverlike.html index b7d5a59..f41c3b3 100644 --- a/docs/interfaces/_types_.expressserverlike.html +++ b/docs/interfaces/_types_.expressserverlike.html @@ -104,7 +104,7 @@

    listening

    listening: boolean
    @@ -121,7 +121,7 @@

    address

  • Returns any

    @@ -138,7 +138,7 @@

    close

  • Returns void

    @@ -155,7 +155,7 @@

    once

  • Parameters

    diff --git a/docs/interfaces/_types_.legacyserverlike.html b/docs/interfaces/_types_.legacyserverlike.html index b3c8919..cc211bc 100644 --- a/docs/interfaces/_types_.legacyserverlike.html +++ b/docs/interfaces/_types_.legacyserverlike.html @@ -102,7 +102,7 @@

    listener

    listener: Deno.Listener
    @@ -119,7 +119,7 @@

    close

  • Returns void

    diff --git a/docs/interfaces/_types_.listenerlike.html b/docs/interfaces/_types_.listenerlike.html index fe9cc24..974e983 100644 --- a/docs/interfaces/_types_.listenerlike.html +++ b/docs/interfaces/_types_.listenerlike.html @@ -100,7 +100,7 @@

    listen

  • Parameters

    diff --git a/docs/interfaces/_types_.nativeserverlike.html b/docs/interfaces/_types_.nativeserverlike.html index f0aaa3e..0cff0bb 100644 --- a/docs/interfaces/_types_.nativeserverlike.html +++ b/docs/interfaces/_types_.nativeserverlike.html @@ -103,7 +103,7 @@

    Readonly addrs

    addrs: Deno.Addr[]
    @@ -120,7 +120,7 @@

    close

  • Returns void

    @@ -137,7 +137,7 @@

    listenAndServe

  • Returns Promise<void>

    diff --git a/docs/interfaces/_types_.requesthandlerlike.html b/docs/interfaces/_types_.requesthandlerlike.html index 95a0a36..068a746 100644 --- a/docs/interfaces/_types_.requesthandlerlike.html +++ b/docs/interfaces/_types_.requesthandlerlike.html @@ -84,7 +84,7 @@

    Callable

  • Parameters

    diff --git a/docs/modules/_close_.html b/docs/modules/_close_.html index d1c720b..66135f6 100644 --- a/docs/modules/_close_.html +++ b/docs/modules/_close_.html @@ -89,7 +89,7 @@

    Private
    diff --git a/docs/modules/_superagent_.html b/docs/modules/_superagent_.html index bc706f1..d86775b 100644 --- a/docs/modules/_superagent_.html +++ b/docs/modules/_superagent_.html @@ -91,7 +91,7 @@

    Const superagent

    superagent: any = _superagent
    @@ -108,7 +108,7 @@

    getXHR

  • Returns any

    diff --git a/docs/modules/_superdeno_.html b/docs/modules/_superdeno_.html index 7cf2c2a..f589902 100644 --- a/docs/modules/_superdeno_.html +++ b/docs/modules/_superdeno_.html @@ -96,7 +96,7 @@

    startManagedServer

  • Parameters

    @@ -122,7 +122,7 @@

    superdeno

  • diff --git a/docs/modules/_test_.html b/docs/modules/_test_.html index e8a558e..6117b5b 100644 --- a/docs/modules/_test_.html +++ b/docs/modules/_test_.html @@ -126,7 +126,7 @@

    CallbackHandler

    CallbackHandler: (err: any, res: IResponse) => void
    @@ -165,7 +165,7 @@

    ExpectChecker

    ExpectChecker: (res: IResponse) => any
    @@ -201,7 +201,7 @@

    Header

    Header: {}
    @@ -219,7 +219,7 @@

    HeaderValue

    HeaderValue: string | string[]
    @@ -229,17 +229,17 @@

    MultipartValue

    MultipartValueSingle

    -
    MultipartValueSingle: Blob | Uint8Array | Deno.Reader | string | boolean | number
    +
    MultipartValueSingle: Blob | Uint8Array | string | boolean | number
    @@ -249,7 +249,7 @@

    Parser

    Parser: (str: string) => any
    @@ -280,7 +280,7 @@

    Plugin

    Plugin: (req: IRequest) => void
    @@ -311,7 +311,7 @@

    Serializer

    Serializer: (obj: any) => string
    @@ -345,7 +345,7 @@

    Const SHAM_SYMBOL

    SHAM_SYMBOL: any = Symbol("SHAM_SYMBOL")
    @@ -361,7 +361,7 @@

    Const SuperRequest

    SuperRequest: IRequest = (superagent as any).Request
    @@ -383,7 +383,7 @@

    Private cleanHeader

  • @@ -417,7 +417,7 @@

    Private completeXhrPr
  • @@ -439,7 +439,7 @@

    Private error

  • @@ -475,7 +475,7 @@

    Private initHeaders

  • @@ -506,7 +506,7 @@

    Private isRedirect

  • @@ -536,7 +536,7 @@

    random

  • Parameters

    diff --git a/docs/modules/_types_.html b/docs/modules/_types_.html index 93f4fdc..03026e8 100644 --- a/docs/modules/_types_.html +++ b/docs/modules/_types_.html @@ -96,7 +96,7 @@

    ServerLike

    diff --git a/docs/modules/_utils_.html b/docs/modules/_utils_.html index 340d5a7..f41dc51 100644 --- a/docs/modules/_utils_.html +++ b/docs/modules/_utils_.html @@ -96,7 +96,7 @@

    Const isCommonServer

    Parameters

    @@ -119,7 +119,7 @@

    Const isExpressListener
  • Parameters

    @@ -142,7 +142,7 @@

    Const isExpressServer

    Parameters

    @@ -165,7 +165,7 @@

    Const isListener

  • Parameters

    @@ -188,7 +188,7 @@

    Const isServer

  • Parameters

    @@ -211,7 +211,7 @@

    Const isStdLegacyS
  • Parameters

    @@ -234,7 +234,7 @@

    Const isStdNativeS
  • Parameters

    @@ -257,7 +257,7 @@

    Const isString

  • Parameters

    diff --git a/egg.json b/egg.json index 1ac3c6e..a00d4b4 100644 --- a/egg.json +++ b/egg.json @@ -1,7 +1,7 @@ { "name": "superdeno", "description": "HTTP assertions for Deno made easy via superagent.", - "version": "4.9.0", + "version": "5.0.0", "repository": "https://github.com/cmorten/superdeno", "stable": true, "checkFormat": false, diff --git a/src/superdeno.ts b/src/superdeno.ts index f3bc8ec..07c64f0 100644 --- a/src/superdeno.ts +++ b/src/superdeno.ts @@ -3,11 +3,15 @@ * Port of supertest (https://github.com/visionmedia/supertest) for Deno */ -import { methods, Server } from "../deps.ts"; +import { methods } from "../deps.ts"; import { Test } from "./test.ts"; -import { close } from "./close.ts"; import { isListener, isServer, isString } from "./utils.ts"; -import type { ListenerLike, RequestHandlerLike, ServerLike } from "./types.ts"; +import type { + ListenerLike, + NativeServerLike, + RequestHandlerLike, + ServerLike, +} from "./types.ts"; /** * Provides methods for making requests to the configured server using the passed @@ -42,17 +46,6 @@ export interface SuperDeno { unsubscribe(url: string): Test; } -async function startManagedServer( - managedServer: Server, - app: RequestHandlerLike, -) { - try { - await managedServer.listenAndServe(); - } catch (error) { - await close(managedServer, app, error); - } -} - /** * Takes a a url string, [`http.Server`](https://doc.deno.land/https/deno.land/std/http/mod.ts#Server), * a request handling function, or an object that implements an `app.listen()` method (which mirrors @@ -71,28 +64,32 @@ async function startManagedServer( * @public */ export function superdeno( - app: string | RequestHandlerLike | ListenerLike | ServerLike, + app: + | string + | RequestHandlerLike + | ListenerLike + | ServerLike + | NativeServerLike, secure?: boolean, ): SuperDeno { const obj: Record = {}; - let managedServer: Server | undefined; + let managedServer: Deno.HttpServer | undefined; if (!isString(app) && !isListener(app) && !isServer(app)) { - managedServer = new Server({ + managedServer = Deno.serve({ port: 0, - async handler(request) { - try { - return await app(request); - } catch (error) { - console.error( - "SuperDeno experienced an unexpected server error with the underlying app handler.", - error, - ); + }, async function handler(request) { + try { + return await app(request); + } catch (error) { + console.error( + "SuperDeno experienced an unexpected server error with the underlying app handler.", + error, + ); - throw error; - } - }, + throw error; + } }); } @@ -108,9 +105,5 @@ export function superdeno( }; }); - if (typeof managedServer !== "undefined") { - startManagedServer(managedServer, app as RequestHandlerLike); - } - return obj as SuperDeno; } diff --git a/src/test.ts b/src/test.ts index 6857ba3..9a19c5f 100644 --- a/src/test.ts +++ b/src/test.ts @@ -20,8 +20,9 @@ import { isExpressListener, isExpressServer, isListener, + isNativeServer, isServer, - isStdNativeServer, + isStdLegacyNativeServer, isString, } from "./utils.ts"; import { exposeSham } from "./xhrSham.js"; @@ -47,7 +48,6 @@ type Parser = (str: string) => any; type MultipartValueSingle = | Blob | Uint8Array - | Deno.Reader | string | boolean | number; @@ -188,8 +188,8 @@ exposeSham(SHAM_SYMBOL); */ async function completeXhrPromises() { for ( - const promise of Object.values( - (window as any)[SHAM_SYMBOL].promises, + const promise of Object.values>( + (globalThis as any)[SHAM_SYMBOL].promises, ) ) { if (promise) { @@ -221,7 +221,7 @@ export class Test extends SuperRequest { #urlSetupPromise: Promise; public app: string | ListenerLike | ServerLike; - public url!: string; + public override url!: string; constructor( app: string | ListenerLike | ServerLike, @@ -254,7 +254,22 @@ export class Test extends SuperRequest { serverSetupPromiseResolver(); addressSetupPromiseResolver(); } else { - if (isStdNativeServer(app)) { + if (isNativeServer(app)) { + this.#server = { + async close() { + try { + app.unref(); + await app.shutdown(); + } catch { + // swallow error + } + }, + addrs: [app.addr], + async listenAndServe() {}, + }; + + serverSetupPromiseResolver(); + } else if (isStdLegacyNativeServer(app)) { const listenAndServePromise = app.listenAndServe().catch((err) => close(app, app, err) ); @@ -347,7 +362,9 @@ export class Test extends SuperRequest { await this.#serverSetupPromise; const address = - ("addrs" in this.#server + ("addr" in this.#server + ? this.#server.addr + : "addrs" in this.#server ? this.#server.addrs[0] : "address" in this.#server ? this.#server.address() @@ -536,7 +553,7 @@ export class Test extends SuperRequest { * @returns {Test} for chaining * @public */ - end(callback?: CallbackHandler): this { + override end(callback?: CallbackHandler): this { Promise.allSettled([this.#serverSetupPromise, this.#urlSetupPromise]).then( () => { const self = this; diff --git a/src/types.ts b/src/types.ts index e45b384..b369d50 100644 --- a/src/types.ts +++ b/src/types.ts @@ -12,12 +12,19 @@ export interface LegacyServerLike { close(): void; } -export interface NativeServerLike { +export interface LegacyNativeServerLike { readonly addrs: Deno.Addr[]; listenAndServe(): Promise; close(): void; } +export interface NativeServerLike { + readonly addr: Deno.Addr; + readonly finished: Promise; + shutdown(): Promise; + unref(): void; +} + export interface ExpressServerLike { address(): any; listening: boolean; @@ -27,7 +34,7 @@ export interface ExpressServerLike { export type ServerLike = | LegacyServerLike - | NativeServerLike + | LegacyNativeServerLike | ExpressServerLike; export interface ListenerLike { diff --git a/src/utils.ts b/src/utils.ts index d638d4e..241de67 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,3 +1,5 @@ +import type { ExpressServerLike } from "./types.ts"; +import type { LegacyNativeServerLike } from "./types.ts"; import type { ExpressListenerLike, LegacyServerLike, @@ -21,21 +23,32 @@ export const isExpressListener = ( "render" in thing && "route" in thing && "set" in thing && "use" in thing; const isCommonServer = (thing: unknown): thing is ServerLike => - thing instanceof Object && thing !== null && "close" in thing; + thing instanceof Object && thing !== null && + ("close" in thing || "shutdown" in thing); export const isStdLegacyServer = (thing: unknown): thing is LegacyServerLike => isCommonServer(thing) && "listener" in thing; -export const isStdNativeServer = (thing: unknown): thing is NativeServerLike => +export const isStdLegacyNativeServer = ( + thing: unknown, +): thing is LegacyNativeServerLike => isCommonServer(thing) && "addrs" in thing; -export const isExpressServer = (thing: unknown): thing is NativeServerLike => +export const isNativeServer = ( + thing: unknown, +): thing is NativeServerLike => + isCommonServer(thing) && + "addr" in thing; + +export const isExpressServer = (thing: unknown): thing is ExpressServerLike => isCommonServer(thing) && "listening" in thing && "address" in thing && typeof thing.address === "function"; -export const isServer = (thing: unknown): thing is ServerLike => - isStdLegacyServer(thing) || isStdNativeServer(thing) || - isExpressServer(thing); +export const isServer = ( + thing: unknown, +): thing is ServerLike | NativeServerLike => + isStdLegacyServer(thing) || isStdLegacyNativeServer(thing) || + isNativeServer(thing) || isExpressServer(thing); diff --git a/test/deps.ts b/test/deps.ts index 1edc171..932be46 100644 --- a/test/deps.ts +++ b/test/deps.ts @@ -1,9 +1,11 @@ -export { dirname, join } from "https://deno.land/std@0.213.0/path/mod.ts"; -export { expect } from "https://deno.land/x/expect@v0.4.0/mod.ts"; -export * as Opine from "https://deno.land/x/opine@2.3.4/mod.ts"; +export { dirname, join } from "jsr:@std/path@^1.0.9"; +export { + assertStrictEquals, + assertStringIncludes, +} from "jsr:@std/assert@^1.0.13"; +export { expect } from "https://deno.land/x/expect@v0.4.2/mod.ts"; -// TODO: upgrade to v13.0.0 - appear to be getting error when using AbortController -export * as Oak from "https://deno.land/x/oak@v12.6.2/mod.ts"; +export * as Oak from "jsr:@oak/oak@^17.1.4"; -// @deno-types="npm:@types/express@^4.17" -export { default as express } from "npm:express@4.18.2"; +// @deno-types="npm:@types/express@^4.17.22" +export { default as express } from "npm:express@4.21.2"; diff --git a/test/form-data.test.ts b/test/form-data.test.ts index 5afab5e..3c3a968 100644 --- a/test/form-data.test.ts +++ b/test/form-data.test.ts @@ -1,9 +1,5 @@ -import { Oak, Opine } from "./deps.ts"; +import { assertStrictEquals, assertStringIncludes, Oak } from "./deps.ts"; import { describe, it } from "./utils.ts"; -import { - assertStrictEquals, - assertStringIncludes, -} from "https://deno.land/std@0.113.0/testing/asserts.ts"; import { superdeno } from "../mod.ts"; const setupOak = () => { @@ -12,13 +8,13 @@ const setupOak = () => { router.post("/", (ctx) => { const headers = ctx.request.headers; - const body = ctx.request.body(); + const body = ctx.request.body; assertStringIncludes( headers.get("content-type") ?? "", "multipart/form-data; boundary=", ); - assertStrictEquals(body.type, "form-data"); + assertStrictEquals(body.type(), "form-data"); ctx.response.status = 200; }); @@ -29,21 +25,6 @@ const setupOak = () => { return app; }; -const setupOpine = () => { - const app = Opine.opine(); - - app.post("/", (req, res) => { - assertStringIncludes( - req.headers.get("content-type") ?? "", - "multipart/form-data; boundary=", - ); - - res.send("done"); - }); - - return app; -}; - describe("post multipart/form-data", () => { it("should work with oak", async () => { const app = setupOak(); @@ -54,14 +35,4 @@ describe("post multipart/form-data", () => { .attach("file_key", "path_to_file", "filename") .expect(200); }); - - it("should work with opine", async () => { - const app = setupOpine(); - - await superdeno(app) - .post("/") - .field("form_key", "form_value") - .attach("file_key", "path_to_file", "filename") - .expect(200); - }); }); diff --git a/test/redirects-other-host.test.ts b/test/redirects-other-host.test.ts index 4769571..c4bd4b4 100644 --- a/test/redirects-other-host.test.ts +++ b/test/redirects-other-host.test.ts @@ -1,21 +1,21 @@ +import { getFreePort } from "../deps.ts"; import type { ServerLike } from "../src/types.ts"; -import { expect, Opine } from "./deps.ts"; -import { describe, it } from "./utils.ts"; +import { expect, express } from "./deps.ts"; +import { describe, it, random } from "./utils.ts"; import { superdeno } from "../mod.ts"; - -const { opine } = Opine; +import type { AddressInfo } from "node:net"; let server: ServerLike; -let address: Deno.NetAddr; +let address: AddressInfo; let base: string; let server2: ServerLike; -let address2: Deno.NetAddr; +let address2: AddressInfo; let base2: string; -const setup = () => { - const app = opine(); - const app2 = opine(); +const setup = async () => { + const app = express(); + const app2 = express(); app.use((_req, res, next) => { res.set("Host", base); @@ -45,13 +45,25 @@ const setup = () => { res.send(req.method); }); - server = app.listen(); - address = server.addrs[0] as Deno.NetAddr; + let resolveServerListenPromise: () => void; + const serverListenPromise = new Promise((resolve) => { + resolveServerListenPromise = resolve; + }); + const freePort = await getFreePort(random(1024, 49151)); + server = app.listen(freePort, () => resolveServerListenPromise()); + address = server.address(); base = `http://localhost:${address.port}`; - server2 = app2.listen(); - address2 = server2.addrs[0] as Deno.NetAddr; + let resolveServer2ListenPromise: () => void; + const server2ListenPromise = new Promise((resolve) => { + resolveServer2ListenPromise = resolve; + }); + const freePort2 = await getFreePort(random(1024, 49151)); + server2 = app2.listen(freePort2, () => resolveServer2ListenPromise()); + address2 = server2.address(); base2 = `http://localhost:${address2.port}`; + + await Promise.allSettled([serverListenPromise, server2ListenPromise]); }; const teardown = () => { @@ -61,8 +73,8 @@ const teardown = () => { describe("request.get", () => { describe("on 301 redirect", () => { - it("request.get: on 301 redirect: should follow Location with a GET request", (done) => { - setup(); + it("request.get: on 301 redirect: should follow Location with a GET request", async (done) => { + await setup(); superdeno(base) .get("/test-301") @@ -78,8 +90,8 @@ describe("request.get", () => { }); describe("on 302 redirect", () => { - it("request.get: on 302 redirect: should follow Location with a GET request", (done) => { - setup(); + it("request.get: on 302 redirect: should follow Location with a GET request", async (done) => { + await setup(); superdeno(base) .get("/test-302") @@ -95,8 +107,8 @@ describe("request.get", () => { }); describe("on 303 redirect", () => { - it("request.get: on 303 redirect: should follow Location with a GET request", (done) => { - setup(); + it("request.get: on 303 redirect: should follow Location with a GET request", async (done) => { + await setup(); superdeno(base) .get("/test-303") @@ -112,8 +124,8 @@ describe("request.get", () => { }); describe("on 307 redirect", () => { - it("request.get: on 307 redirect: should follow Location with a GET request", (done) => { - setup(); + it("request.get: on 307 redirect: should follow Location with a GET request", async (done) => { + await setup(); superdeno(base) .get("/test-307") @@ -129,8 +141,8 @@ describe("request.get", () => { }); describe("on 308 redirect", () => { - it("request.get: on 308 redirect: should follow Location with a GET request", (done) => { - setup(); + it("request.get: on 308 redirect: should follow Location with a GET request", async (done) => { + await setup(); superdeno(base) .get("/test-308") @@ -148,8 +160,8 @@ describe("request.get", () => { describe("request.post", () => { describe("on 301 redirect", () => { - it("request.post: on 301 redirect: should follow Location with a GET request", (done) => { - setup(); + it("request.post: on 301 redirect: should follow Location with a GET request", async (done) => { + await setup(); superdeno(base) .post("/test-301") @@ -164,8 +176,8 @@ describe("request.post", () => { }); describe("on 302 redirect", () => { - it("request.post: on 302 redirect: should follow Location with a GET request", (done) => { - setup(); + it("request.post: on 302 redirect: should follow Location with a GET request", async (done) => { + await setup(); superdeno(base) .post("/test-302") @@ -181,8 +193,8 @@ describe("request.post", () => { }); describe("on 303 redirect", () => { - it("request.post: on 303 redirect: should follow Location with a GET request", (done) => { - setup(); + it("request.post: on 303 redirect: should follow Location with a GET request", async (done) => { + await setup(); superdeno(base) .post("/test-303") @@ -198,8 +210,8 @@ describe("request.post", () => { }); describe("on 307 redirect", () => { - it("request.post: on 307 redirect: should follow Location with a POST request", (done) => { - setup(); + it("request.post: on 307 redirect: should follow Location with a POST request", async (done) => { + await setup(); superdeno(base) .post("/test-307") @@ -215,8 +227,8 @@ describe("request.post", () => { }); describe("on 308 redirect", () => { - it("request.post: on 308 redirect: should follow Location with a POST request", (done) => { - setup(); + it("request.post: on 308 redirect: should follow Location with a POST request", async (done) => { + await setup(); superdeno(base) .post("/test-308") diff --git a/test/redirects.test.ts b/test/redirects.test.ts index a891bfb..9bd3bd8 100644 --- a/test/redirects.test.ts +++ b/test/redirects.test.ts @@ -1,11 +1,9 @@ -// deno-lint-ignore-file no-explicit-any - -import { expect, Opine } from "./deps.ts"; +import { expect, express } from "./deps.ts"; import { describe, it } from "./utils.ts"; import { superdeno } from "../mod.ts"; -const { opine, json, urlencoded } = Opine; -let promises: Promise[] = []; +const { json, urlencoded } = express; +let promises: Promise[] = []; const allPromises = async () => { for (const promise of promises) { @@ -19,7 +17,7 @@ const allPromises = async () => { }; const setup = () => { - const app = opine(); + const app = express(); app.use(json()); app.use(urlencoded({ extended: true })); @@ -50,7 +48,7 @@ const setup = () => { app.get("/movies/all/0", (req, res) => { res.set("QUERY", JSON.stringify(req.query)); - res.setStatus(200).send("first movie page"); + res.status(200).send("first movie page"); }); app.get("/movies/random", (_req, res) => { @@ -80,7 +78,7 @@ const setup = () => { app.get("/show-cookies", (req, res) => { res.set("content-type", "text/plain"); - res.send(req.headers.get("cookie")); + res.send(req.headers.cookie); }); app.put("/redirect-303", (_req, res) => { @@ -120,24 +118,20 @@ const setup = () => { }); app.get("/header/2", (req, res) => { - res.send(Object.fromEntries(req.headers.entries())); + res.send(req.headers); }); - app.get("/bad-redirect", async (_req, res) => { - try { - await res.setStatus(307).end(); - } catch (_) { - // swallow - } + app.get("/bad-redirect", (_req, res) => { + res.status(307).end(); }); - const called: any = {}; + const called: Record = {}; app.get("/error/redirect/:id", (req, res) => { const { id } = req.params; if (!called[id]) { called[id] = true; - res.setStatus(500).send("boom"); + res.status(500).send("boom"); } else { res.redirect("/movies"); delete called[id]; diff --git a/test/superdeno.express.test.ts b/test/superdeno.express.test.ts index 343e6eb..b4480df 100644 --- a/test/superdeno.express.test.ts +++ b/test/superdeno.express.test.ts @@ -2,6 +2,7 @@ import { getFreePort } from "../deps.ts"; import { expect, express } from "./deps.ts"; import { describe, it, random } from "./utils.ts"; import { superdeno, Test } from "../mod.ts"; +import type { AddressInfo } from "node:net"; const { json } = express; @@ -16,7 +17,7 @@ describe("superdeno(url)", () => { const freePort = await getFreePort(random(1024, 49151)); const server = app.listen(freePort); const address = server.address(); - const url = `http://localhost:${address.port}`; + const url = `http://localhost:${(address as AddressInfo).port}`; superdeno(url) .get("/") @@ -37,7 +38,7 @@ describe("superdeno(url)", () => { const freePort = await getFreePort(random(1024, 49151)); const server = app.listen(freePort); const address = server.address(); - const url = `http://localhost:${address.port}`; + const url = `http://localhost:${(address as AddressInfo).port}`; const test = superdeno(url).get("/"); @@ -138,7 +139,7 @@ describe("superdeno(app)", () => { .get("/") .expect("content-length", "0") .expect("content-type", "application/json; charset=utf-8") - .expect("set-cookie", "foo=bar; Path=/,user=deno; Path=/,fizz=buzz") + .expect("set-cookie", "foo=bar; Path=/, user=deno; Path=/, fizz=buzz") .expect("x-powered-by", "Express") .expect("x-tested-with", "SuperDeno") .expect(200, done); @@ -180,26 +181,29 @@ describe("superdeno(app)", () => { .expect(302); }); - it("superdeno(app): .redirects(n): should handle intermediate redirects", (done) => { - const app = express(); + it( + "superdeno(app): .redirects(n): should handle intermediate redirects", + (done) => { + const app = express(); - app.get("/login", (_req, res) => { - res.send("Login"); - }); + app.get("/login", (_req, res) => { + res.send("Login"); + }); - app.get("/redirect", (_req, res) => { - res.redirect("/login"); - }); + app.get("/redirect", (_req, res) => { + res.redirect("/login"); + }); - app.get("/", (_req, res) => { - res.redirect("/redirect"); - }); + app.get("/", (_req, res) => { + res.redirect("/redirect"); + }); - superdeno(app) - .get("/") - .redirects(1) - .expect(302, done); - }); + superdeno(app) + .get("/") + .redirects(1) + .expect(302, done); + }, + ); it("superdeno(app): .redirects(n): promise form: should handle intermediate redirects", async () => { const app = express(); @@ -421,7 +425,7 @@ describe("superdeno(app)", () => { const server = app.listen(); const address = server.address(); - const url = `http://localhost:${address.port}`; + const url = `http://localhost:${(address as AddressInfo).port}`; superdeno(url).get("/").timeout(1) .expect(200, async (err, _res) => { @@ -741,19 +745,24 @@ describe("superdeno(app)", () => { }); }); - it("superdeno(app): .expect(field, value[, fn]): should assert multiple fields", (done) => { - const app = express(); + it( + "superdeno(app): .expect(field, value[, fn]): should assert multiple fields", + (done) => { + const app = express(); - app.get("/", (_req, res) => { - res.send("hey"); - }); + app.get("/", (_req, res) => { + res.send("hey"); + }); - superdeno(app) - .get("/") - .expect("Content-Type", "text/html; charset=utf-8") - .expect("Content-Length", "3") - .end(done); - }); + superdeno(app) + .get("/") + .expect("Content-Type", "text/html; charset=utf-8") + .expect("Content-Length", "3") + .end(done); + }, + // TODO: Content-Length header is getting lost somewhere in the Deno node:http polyfill + { ignore: true }, + ); it("superdeno(app): .expect(field, value[, fn]): should support regular expressions", (done) => { const app = express(); @@ -774,23 +783,28 @@ describe("superdeno(app)", () => { }); }); - it("superdeno(app): .expect(field, value[, fn]): should support numbers", (done) => { - const app = express(); - - app.get("/", (_req, res) => { - res.send("hey"); - }); + it( + "superdeno(app): .expect(field, value[, fn]): should support numbers", + (done) => { + const app = express(); - superdeno(app) - .get("/") - .expect("Content-Length", 4) - .end((err) => { - expect(err.message).toEqual( - 'expected "Content-Length" of "4", got "3"', - ); - done(); + app.get("/", (_req, res) => { + res.send("hey"); }); - }); + + superdeno(app) + .get("/") + .expect("Content-Length", 4) + .end((err) => { + expect(err.message).toEqual( + 'expected "Content-Length" of "4", got "3"', + ); + done(); + }); + }, + // TODO: Content-Length header is getting lost somewhere in the Deno node:http polyfill + { ignore: true }, + ); describe("handling arbitrary expect functions", () => { const app = express(); diff --git a/test/superdeno.native.test.ts b/test/superdeno.native.test.ts new file mode 100644 index 0000000..48ad1f3 --- /dev/null +++ b/test/superdeno.native.test.ts @@ -0,0 +1,67 @@ +import { describe, it } from "./utils.ts"; +import { expect } from "./deps.ts"; +import { superdeno } from "../mod.ts"; + +describe("native: superdeno", () => { + it("native: superdeno(server): should support `superdeno(server)`", async () => { + const server = Deno.serve({ + port: 0, + }, function handler(_req) { + return new Response("hello"); + }); + + await superdeno(server) + .get("/") + .expect("hello"); + }); + + it("superdeno(server): .expect(field, value[, fn]): should assert multiple fields", async () => { + const server = Deno.serve({ + port: 0, + }, function handler(_req) { + return new Response("hey"); + }); + + await superdeno(server) + .get("/") + .expect("Content-Type", "text/plain;charset=UTF-8") + .expect("Content-Length", "3"); + }); + + it("superdeno(server): .expect(field, value[, fn]): should support numbers", (done) => { + const server = Deno.serve({ + port: 0, + }, function handler(_req) { + return new Response("hey"); + }); + + superdeno(server) + .get("/") + .expect("Content-Length", 4) + .end((err) => { + expect(err.message).toEqual( + 'expected "Content-Length" of "4", got "3"', + ); + done(); + }); + }); + + it("native: superdeno(url): should support `superdeno(url)`", async () => { + const server = Deno.serve({ + port: 0, + }, function handler(_req) { + return new Response("hello"); + }); + + const serverPromise = server.finished; + const address = server.addr as Deno.NetAddr; + const url = `http://127.0.0.1:${address.port}`; + + await superdeno(url) + .get("/") + .expect("hello"); + + server.shutdown(); + await serverPromise; + }); +}); diff --git a/test/superdeno.oak.test.ts b/test/superdeno.oak.test.ts index d1f7387..5312f6f 100644 --- a/test/superdeno.oak.test.ts +++ b/test/superdeno.oak.test.ts @@ -46,8 +46,8 @@ const bootstrapOakServerTest = async ( }; describe("Oak: superdeno(url)", () => { - it("Oak: superdeno(url): should support open `superdeno(url)` format for web frameworks such as Oak", async (done) => { - await bootstrapOakServerTest({ + it("Oak: superdeno(url): should support open `superdeno(url)` format for web frameworks such as Oak", (done) => { + bootstrapOakServerTest({ configureApp: ({ router }) => { router.get("/", (ctx) => { ctx.response.body = "hello"; @@ -65,8 +65,8 @@ describe("Oak: superdeno(url)", () => { }); describe(".expect(status, body[, fn])", () => { - it("Oak: superdeno(url): .expect(status, body[, fn]): should assert the response body and status", async (done) => { - await bootstrapOakServerTest({ + it("Oak: superdeno(url): .expect(status, body[, fn]): should assert the response body and status", (done) => { + bootstrapOakServerTest({ configureApp: ({ router }) => { router.get("/", (ctx) => { ctx.response.body = "foo"; @@ -83,8 +83,8 @@ describe("Oak: superdeno(url)", () => { }); }); - it("superdeno(app): .expect(status, body[, fn]): should assert the response body and error status'", async (done) => { - await bootstrapOakServerTest({ + it("superdeno(app): .expect(status, body[, fn]): should assert the response body and error status'", (done) => { + bootstrapOakServerTest({ configureApp: ({ router }) => { router.get("/", (ctx) => { ctx.throw(400, "foo"); @@ -103,8 +103,8 @@ describe("Oak: superdeno(url)", () => { }); describe(".end(cb)", () => { - it("Oak: superdeno(url): .end(cb): should set `this` to the test object when calling the `cb` in `.end(cb)`", async (done) => { - await bootstrapOakServerTest({ + it("Oak: superdeno(url): .end(cb): should set `this` to the test object when calling the `cb` in `.end(cb)`", (done) => { + bootstrapOakServerTest({ configureApp: ({ router }) => { router.get("/", (ctx) => { ctx.response.body = "hello"; diff --git a/test/superdeno.opine.test.ts b/test/superdeno.opine.test.ts deleted file mode 100644 index db30990..0000000 --- a/test/superdeno.opine.test.ts +++ /dev/null @@ -1,985 +0,0 @@ -import { expect, Opine } from "./deps.ts"; -import { describe, it } from "./utils.ts"; -import { superdeno, Test } from "../mod.ts"; - -const { opine, json } = Opine; - -describe("superdeno(url)", () => { - it("superdeno(url): should support `superdeno(url)`", (done) => { - const app = opine(); - - app.get("/", async (_req, res) => { - await res.send("hello"); - }); - - const server = app.listen(); - const address = server.addrs[0] as Deno.NetAddr; - const url = `http://localhost:${address.port}`; - - superdeno(url) - .get("/") - .expect("hello", () => { - server.close(); - done(); - }); - }); - - describe(".end(cb)", () => { - it("superdeno(url): .end(cb): should set `this` to the test object when calling the `cb` in `.end(cb)`", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("hello"); - }); - - const server = app.listen(0); - const address = server.addrs[0] as Deno.NetAddr; - const url = `http://localhost:${address.port}`; - - const test = superdeno(url).get("/"); - - test.end(function (this: Test, _err, _res) { - expect(test).toEqual(this); - server.close(); - done(); - }); - }); - }); -}); - -describe("superdeno(app)", () => { - it("superdeno(app): should fire up the app on an ephemeral port", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("hey"); - }); - - superdeno(app) - .get("/") - .end((_err, res) => { - expect(res.status).toEqual(200); - expect(res.text).toEqual("hey"); - done(); - }); - }); - - it("superdeno(app): should work with an active server", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("hey"); - }); - - const server = app.listen(0); - - superdeno(server) - .get("/") - .end((_err, res) => { - expect(res.status).toEqual(200); - expect(res.text).toEqual("hey"); - done(); - }); - }); - - it("superdeno(app): should work with remote server", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("hey"); - }); - - const server = app.listen(4002); - - superdeno("http://localhost:4002") - .get("/") - .end((err, res) => { - if (err) throw err; - expect(res.status).toEqual(200); - expect(res.text).toEqual("hey"); - server.close(); - done(); - }); - }); - - // TODO: https test. - // it("superdeno(app): should work with a https server", (done) => { - // const certFile = "test/fixtures/RootCA.pem"; - // const keyFile = "test/fixtures/RootCA.key"; - - // const app = opine(); - - // app.get("/", (req, res) => { - // res.send("hey"); - // }); - - // const server = app.listen( - // { port: 4001, certFile, keyFile }, - // ); - - // superdeno(server, true) - // .get("/") - // .end((err, res) => { - // if (err) return done(err); - // expect(res.status).toEqual(200); - // expect(res.text).toEqual("hey"); - // server.close(); - // done(); - // }); - // }); - - it("superdeno(app): should work with .send() on POST", (done) => { - const app = opine(); - - app.use(json()); - - app.post("/", (req, res) => { - res.send(req.parsedBody.name); - }); - - superdeno(app) - .post("/") - .send({ name: "john" }) - .expect("john", done); - }); - - it("superdeno(app): should handle headers correctly", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.cookie({ name: "foo", value: "bar" }); - res.cookie({ name: "user", value: "deno" }); - res.append("Set-Cookie", "fizz=buzz"); - res.set("X-Tested-With", "SuperDeno"); - res.type("application/json"); - res.end(); - }); - - superdeno(app) - .get("/") - .expect("content-length", "0") - .expect("content-type", "application/json; charset=utf-8") - .expect("set-cookie", "foo=bar; Path=/, user=deno; Path=/, fizz=buzz") - .expect("x-powered-by", "Opine") - .expect("x-tested-with", "SuperDeno") - .expect(200, done); - }); - - it("superdeno(app): should work when unbuffered", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.end("Hello"); - }); - - superdeno(app) - .get("/") - .expect("Hello", done); - }); - - it("superdeno(app): should default redirects to 0", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.redirect("/login"); - }); - - superdeno(app) - .get("/") - .expect(302, done); - }); - - it("superdeno(app): promise form: should default redirects to 0", async () => { - const app = opine(); - - app.get("/", (_req, res) => { - res.redirect("/login"); - }); - - await superdeno(app) - .get("/") - .expect(302); - }); - - it("superdeno(app): .redirects(n): should handle intermediate redirects", (done) => { - const app = opine(); - - app.get("/login", (_req, res) => { - res.end("Login"); - }); - - app.get("/redirect", (_req, res) => { - res.redirect("/login"); - }); - - app.get("/", (_req, res) => { - res.redirect("/redirect"); - }); - - superdeno(app) - .get("/") - .redirects(1) - .expect(302, done); - }); - - it("superdeno(app): .redirects(n): promise form: should handle intermediate redirects", async () => { - const app = opine(); - - app.get("/login", (_req, res) => { - res.end("Login"); - }); - - app.get("/redirect", (_req, res) => { - res.redirect("/login"); - }); - - app.get("/", (_req, res) => { - res.redirect("/redirect"); - }); - - await superdeno(app) - .get("/") - .redirects(1) - .expect(302); - }); - - it("superdeno(app): .redirects(n): should handle full redirects", (done) => { - const app = opine(); - - app.get("/login", (_req, res) => { - res.end("Login"); - }); - - app.get("/redirect", (_req, res) => { - res.redirect("/login"); - }); - - app.get("/", (_req, res) => { - res.redirect("/redirect"); - }); - - superdeno(app) - .get("/") - .redirects(2) - .end((_err, res) => { - expect(res).toBeDefined(); - expect(res.status).toEqual(200); - expect(res.text).toEqual("Login"); - done(); - }); - }); - - it("superdeno(app): .redirects(n): promise form: should handle full redirects", async () => { - const app = opine(); - - app.get("/login", (_req, res) => { - res.end("Login"); - }); - - app.get("/redirect", (_req, res) => { - res.redirect("/login"); - }); - - app.get("/", (_req, res) => { - res.redirect("/redirect"); - }); - - const res = await superdeno(app) - .get("/") - .redirects(2); - - expect(res).toBeDefined(); - expect(res.status).toEqual(200); - expect(res.text).toEqual("Login"); - }); - - // TODO: figure out the equivalent error scenario for Deno setup - // it('should handle socket errors', (done) => { - // const app = opine(); - - // app.get('/', (req, res) => { - // res.destroy(); - // }); - - // superdeno(app) - // .get('/') - // .end((err) => { - // expect(err).toBeDefined(); - // done(); - // }); - // }); - - describe(".end(fn)", () => { - it("superdeno(app): .end(fn): should close server", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("superdeno FTW!"); - }); - - let doneCount = 0; - - superdeno(app) - .get("/") - .end(() => { - doneCount++; - - if (doneCount === 2) { - done(); - } - }); - - app.on("close", () => { - doneCount++; - - if (doneCount === 2) { - done(); - } - }); - }); - - it("superdeno(app): .end(fn): should wait for server to close before invoking fn", (done) => { - const app = opine(); - let closed = false; - - app.get("/", (_req, res) => { - res.send("superdeno FTW!"); - }); - - superdeno(app) - .get("/") - .end(() => { - expect(closed).toBeTruthy(); - done(); - }); - - app.on("close", () => { - closed = true; - }); - }); - - it("superdeno(app): .end(fn): should support nested requests", (done) => { - const app = opine(); - const test = superdeno(app); - - app.get("/", (_req, res) => { - res.send("superdeno FTW!"); - }); - - test - .get("/") - .end(() => { - test - .get("/") - .end((err, res) => { - expect(err).toBeNull(); - expect(res.status).toEqual(200); - expect(res.text).toEqual("superdeno FTW!"); - done(); - }); - }); - }); - - it("superdeno(app): .end(fn): should include the response in the error callback", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("whatever"); - }); - - superdeno(app) - .get("/") - .expect(() => { - throw new Error("Some error"); - }) - .end((err, res) => { - expect(err).toBeDefined(); - expect(res).toBeDefined(); - // Duck-typing response, just in case. - expect(res.status).toEqual(200); - done(); - }); - }); - - it("superdeno(app): .end(fn): should set `this` to the test object when calling the error callback", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("whatever"); - }); - - const test = superdeno(app).get("/"); - - test.expect(() => { - throw new Error("Some error"); - }).end(function (this: Test, err, _res) { - expect(err).toBeDefined(); - expect(this).toEqual(test); - done(); - }); - }); - - it("superdeno(app): .end(fn): should handle an undefined Response", (done) => { - const app = opine(); - - let timeoutPromise: Promise; - - app.get("/", async (_req, res) => { - timeoutPromise = new Promise((resolve) => { - setTimeout(async () => { - try { - await res.end(); - } catch (_) { - // swallow - } - - resolve(true); - }, 20); - }); - - await timeoutPromise; - }); - - const server = app.listen(); - const address = server.addrs[0] as Deno.NetAddr; - const url = `http://localhost:${address.port}`; - - superdeno(url).get("/").timeout(1) - .expect(200, async (err, _res) => { - expect(err).toBeInstanceOf(Error); - server.close(); - await timeoutPromise; - done(); - }); - }); - }); - - describe(".expect(status[, fn])", () => { - it("superdeno(app): .expect(status[, fn]): should assert the response status", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("hey"); - }); - - superdeno(app) - .get("/") - .expect(404) - .end((err, _res) => { - expect(err.message).toEqual('expected 404 "Not Found", got 200 "OK"'); - done(); - }); - }); - }); - - describe(".expect(status)", () => { - it("superdeno(app): .expect(status): should assert only status", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("hey"); - }); - - superdeno(app) - .get("/") - .expect(200) - .end(done); - }); - - it("superdeno(app): .expect(status): should assert only error status'", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.sendStatus(400); - }); - - superdeno(app) - .get("/") - .expect(400) - .end(done); - }); - }); - - describe(".expect(status, body[, fn])", () => { - it("superdeno(app): .expect(status, body[, fn]): should assert the response body and status", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("foo"); - }); - - superdeno(app) - .get("/") - .expect(200, "foo", done); - }); - - it("superdeno(app): .expect(status, body[, fn]): should assert the response body and error status'", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.setStatus(400).send("foo"); - }); - - superdeno(app) - .get("/") - .expect(400, "foo", done); - }); - - describe("when the body argument is an empty string", () => { - it("superdeno(app): .expect(status, body[, fn]): should not quietly pass on failure", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("foo"); - }); - - superdeno(app) - .get("/") - .expect(200, "") - .end((err, _res) => { - expect(err.message).toEqual('expected "" response body, got "foo"'); - done(); - }); - }); - }); - }); - - describe(".expect(body[, fn])", () => { - it("superdeno(app): .expect(body[, fn]): should assert the response body", (done) => { - const app = opine(); - - app.set("json spaces", 0); - - app.get("/", (_req, res) => { - res.send({ foo: "bar" }); - }); - - superdeno(app) - .get("/") - .expect("hey") - .end((err, _res) => { - expect(err.message).toEqual( - 'expected "hey" response body, got \'{"foo":"bar"}\'', - ); - done(); - }); - }); - - it("superdeno(app): .expect(body[, fn]): should assert the status before the body", (done) => { - const app = opine(); - - app.set("json spaces", 0); - - app.get("/", (_req, res) => { - res.setStatus(500).send({ message: "something went wrong" }); - }); - - superdeno(app) - .get("/") - .expect(200) - .expect("hey") - .end((err, _res) => { - expect(err.message).toEqual( - 'expected 200 "OK", got 500 "Internal Server Error"', - ); - done(); - }); - }); - - it("superdeno(app): .expect(body[, fn]): should assert the response text", (done) => { - const app = opine(); - - app.set("json spaces", 0); - - app.get("/", (_req, res) => { - res.send({ foo: "bar" }); - }); - - superdeno(app) - .get("/") - .expect('{"foo":"bar"}', done); - }); - - it("superdeno(app): .expect(body[, fn]): should assert the parsed response body", (done) => { - const app = opine(); - - app.set("json spaces", 0); - - app.get("/", (_req, res) => { - res.send({ foo: "bar" }); - }); - - superdeno(app) - .get("/") - .expect({ foo: "baz" }) - .end((err, _res) => { - expect(err.message).toEqual( - 'expected { foo: "baz" } response body, got { foo: "bar" }', - ); - - superdeno(app) - .get("/") - .expect({ foo: "bar" }) - .end(done); - }); - }); - - it("superdeno(app): .expect(body[, fn]): should test response object types", (done) => { - const app = opine(); - app.get("/", (_req, res) => { - res.setStatus(200).json({ stringValue: "foo", numberValue: 3 }); - }); - - superdeno(app) - .get("/") - .expect({ stringValue: "foo", numberValue: 3 }, done); - }); - - it("superdeno(app): .expect(body[, fn]): should deep test response object types", (done) => { - const app = opine(); - app.get("/", (_req, res) => { - res.setStatus(200) - .json( - { - stringValue: "foo", - numberValue: 3, - nestedObject: { innerString: "5" }, - }, - ); - }); - - superdeno(app) - .get("/") - .expect( - { - stringValue: "foo", - numberValue: 3, - nestedObject: { innerString: 5 }, - }, - ) - .end((err, _res) => { - expect(err.message).toEqual( - 'expected {\n stringValue: "foo",\n numberValue: 3,\n nestedObject: { innerString: 5 }\n} response body, got {\n stringValue: "foo",\n numberValue: 3,\n nestedObject: { innerString: "5" }\n}', - ); // eslint-disable-line max-len - - superdeno(app) - .get("/") - .expect( - { - stringValue: "foo", - numberValue: 3, - nestedObject: { innerString: "5" }, - }, - ) - .end(done); - }); - }); - - it("superdeno(app): .expect(body[, fn]): should support regular expressions", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("foobar"); - }); - - superdeno(app) - .get("/") - .expect(/^bar/) - .end((err, _res) => { - expect(err.message).toEqual('expected body "foobar" to match /^bar/'); - done(); - }); - }); - - it("superdeno(app): .expect(body[, fn]): should assert response body multiple times", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("hey deno"); - }); - - superdeno(app) - .get("/") - .expect(/deno/) - .expect("hey") - .expect("hey deno") - .end((err, _res) => { - expect(err.message).toEqual( - 'expected "hey" response body, got "hey deno"', - ); - done(); - }); - }); - - it("superdeno(app): .expect(body[, fn]): should assert response body multiple times with no exception", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("hey deno"); - }); - - superdeno(app) - .get("/") - .expect(/deno/) - .expect(/^hey/) - .expect("hey deno", done); - }); - }); - - describe(".expect(field, value[, fn])", () => { - it("superdeno(app): .expect(field, value[, fn]): should assert the header field presence", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send({ foo: "bar" }); - }); - - superdeno(app) - .get("/") - .expect("Content-Foo", "bar") - .end((err, _res) => { - expect(err.message).toEqual('expected "Content-Foo" header field'); - done(); - }); - }); - - it("superdeno(app): .expect(field, value[, fn]): should assert the header field value", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send({ foo: "bar" }); - }); - - superdeno(app) - .get("/") - .expect("Content-Type", "text/html") - .end((err, _res) => { - expect(err.message).toEqual( - 'expected "Content-Type" of "text/html", ' + - 'got "application/json; charset=utf-8"', - ); - done(); - }); - }); - - it("superdeno(app): .expect(field, value[, fn]): should assert multiple fields", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("hey"); - }); - - superdeno(app) - .get("/") - .expect("Content-Type", "text/html; charset=utf-8") - .expect("Content-Length", "3") - .end(done); - }); - - it("superdeno(app): .expect(field, value[, fn]): should support regular expressions", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("hey"); - }); - - superdeno(app) - .get("/") - .expect("Content-Type", /^application/) - .end((err) => { - expect(err.message).toEqual( - 'expected "Content-Type" matching /^application/, ' + - 'got "text/html; charset=utf-8"', - ); - done(); - }); - }); - - it("superdeno(app): .expect(field, value[, fn]): should support numbers", (done) => { - const app = opine(); - - app.get("/", (_req, res) => { - res.send("hey"); - }); - - superdeno(app) - .get("/") - .expect("Content-Length", 4) - .end((err) => { - expect(err.message).toEqual( - 'expected "Content-Length" of "4", got "3"', - ); - done(); - }); - }); - - describe("handling arbitrary expect functions", () => { - const app = opine(); - app.get("/", (_req, res) => { - res.send("hey"); - }); - - it("superdeno(app): .expect(field, value[, fn]): reports errors", (done) => { - superdeno(app).get("/") - .expect((_res) => { - throw new Error("failed"); - }) - .end((err) => { - expect(err.message).toEqual("failed"); - done(); - }); - }); - - it( - "superdeno(app): .expect(field, value[, fn]): ensures truthy non-errors returned from asserts are not promoted to errors", - (done) => { - superdeno(app).get("/") - .expect((_res) => { - return "some descriptive error"; - }) - .end((err) => { - expect(err).toBeNull(); - done(); - }); - }, - ); - - it("superdeno(app): .expect(field, value[, fn]): ensures truthy errors returned from asserts are throw to end", (done) => { - superdeno(app).get("/") - .expect((_res) => { - return new Error("some descriptive error"); - }) - .end((err) => { - expect(err.message).toEqual("some descriptive error"); - expect(err).toBeInstanceOf(Error); - done(); - }); - }); - - it("superdeno(app): .expect(field, value[, fn]): doesn't create false negatives", (done) => { - superdeno(app).get("/") - .expect((_res) => { - }) - .end(done); - }); - - it("superdeno(app): .expect(field, value[, fn]): handles multiple asserts", (done) => { - const calls: number[] = []; - - superdeno(app).get("/") - .expect((_res) => { - calls[0] = 1; - }) - .expect((_res) => { - calls[1] = 1; - }) - .expect((_res) => { - calls[2] = 1; - }) - .end(() => { - const callCount = [0, 1, 2].reduce((count, i) => { - return count + calls[i]; - }, 0); - expect(callCount).toEqual(3); - done(); - }); - }); - - it("superdeno(app): .expect(field, value[, fn]): plays well with normal assertions - no false positives", (done) => { - superdeno(app).get("/") - .expect((_res) => { - }) - .expect("Content-Type", /json/) - .end((err) => { - expect(err.message).toMatch(/Content-Type/); - done(); - }); - }); - - it("superdeno(app): .expect(field, value[, fn]): plays well with normal assertions - no false negatives", (done) => { - superdeno(app).get("/") - .expect((_res) => { - }) - .expect("Content-Type", /html/) - .expect((_res) => { - }) - .expect("Content-Type", /text/) - .end(done); - }); - }); - - describe("handling multiple assertions per field", () => { - it("superdeno(app): .expect(field, value[, fn]): should work", (done) => { - const app = opine(); - app.get("/", (_req, res) => { - res.send("hey"); - }); - - superdeno(app) - .get("/") - .expect("Content-Type", /text/) - .expect("Content-Type", /html/) - .end(done); - }); - - it("superdeno(app): .expect(field, value[, fn]): should return an error if the first one fails", (done) => { - const app = opine(); - app.get("/", (_req, res) => { - res.send("hey"); - }); - - superdeno(app) - .get("/") - .expect("Content-Type", /bloop/) - .expect("Content-Type", /html/) - .end((err) => { - expect(err.message).toEqual( - 'expected "Content-Type" matching /bloop/, ' + - 'got "text/html; charset=utf-8"', - ); - done(); - }); - }); - - it("superdeno(app): .expect(field, value[, fn]): should return an error if a middle one fails", (done) => { - const app = opine(); - app.get("/", (_req, res) => { - res.send("hey"); - }); - - superdeno(app) - .get("/") - .expect("Content-Type", /text/) - .expect("Content-Type", /bloop/) - .expect("Content-Type", /html/) - .end((err) => { - expect(err.message).toEqual( - 'expected "Content-Type" matching /bloop/, ' + - 'got "text/html; charset=utf-8"', - ); - done(); - }); - }); - - it("superdeno(app): .expect(field, value[, fn]): should return an error if the last one fails", (done) => { - const app = opine(); - app.get("/", (_req, res) => { - res.send("hey"); - }); - - superdeno(app) - .get("/") - .expect("Content-Type", /text/) - .expect("Content-Type", /html/) - .expect("Content-Type", /bloop/) - .end((err) => { - expect(err.message).toEqual( - 'expected "Content-Type" matching /bloop/, ' + - 'got "text/html; charset=utf-8"', - ); - done(); - }); - }); - }); - }); -}); diff --git a/test/superdeno.std.test.ts b/test/superdeno.std.test.ts deleted file mode 100644 index 27ceb62..0000000 --- a/test/superdeno.std.test.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Server } from "../deps.ts"; -import { describe, it } from "./utils.ts"; -import { superdeno } from "../mod.ts"; - -describe("std: superdeno", () => { - it("std: superdeno(server): should support `superdeno(server)`", async () => { - const server = new Server({ - port: 0, - handler() { - return new Response("hello"); - }, - }); - - await superdeno(server) - .get("/") - .expect("hello"); - }); - - it("std: superdeno(url): should support `superdeno(url)`", async () => { - const server = new Server({ - port: 0, - handler() { - return new Response("hello"); - }, - }); - - const serverPromise = server.listenAndServe(); - const address = server.addrs[0] as Deno.NetAddr; - const url = `http://127.0.0.1:${address.port}`; - - await superdeno(url) - .get("/") - .expect("hello"); - - server.close(); - await serverPromise; - }); -}); diff --git a/test/superdeno.std_legacy.test.ts b/test/superdeno.std_legacy.test.ts deleted file mode 100644 index 16d8da5..0000000 --- a/test/superdeno.std_legacy.test.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { serve } from "https://deno.land/std@0.113.0/http/server_legacy.ts"; -import { describe, it } from "./utils.ts"; -import { superdeno } from "../mod.ts"; - -describe("std: superdeno", () => { - it("std: superdeno(server): should support `superdeno(server)`", async () => { - const server = serve("127.0.0.1:0"); - - const requestLoopPromise = (async () => { - for await (const request of server) { - await request.respond({ body: "hello" }); - break; - } - })(); - - await superdeno(server) - .get("/") - .expect("hello"); - - await requestLoopPromise; - }); - - it("std: superdeno(url): should support `superdeno(url)`", async () => { - const server = serve("127.0.0.1:0"); - const address = server.listener.addr as Deno.NetAddr; - const url = `http://${address.hostname}:${address.port}`; - - const requestLoopPromise = (async () => { - for await (const request of server) { - request.respond({ body: "hello" }); - break; - } - })(); - - await superdeno(url) - .get("/") - .expect("hello"); - - server.close(); - await requestLoopPromise; - }); -}); diff --git a/test/utils.ts b/test/utils.ts index 57b2137..5c22a9e 100644 --- a/test/utils.ts +++ b/test/utils.ts @@ -83,8 +83,7 @@ export function it( }; } - await fn(done); - await race; + await Promise.allSettled([fn(done), race]); if (timeoutId!) { clearTimeout(timeoutId); diff --git a/version.ts b/version.ts index cebf4c4..84abde8 100644 --- a/version.ts +++ b/version.ts @@ -1,9 +1,9 @@ /** * Version of SuperDeno. */ -export const VERSION = "4.9.0"; +export const VERSION = "5.0.0"; /** * Supported versions of Deno. */ -export const DENO_SUPPORTED_VERSIONS = ["1.40.2"]; +export const DENO_SUPPORTED_VERSIONS = ["2.3.3"];