|
7 | 7 |
|
8 | 8 | import { assert } from "chai";
|
9 | 9 |
|
| 10 | +import { Client } from "../../src/Client"; |
10 | 11 | import { HTTPClient } from "../../src/HTTPClient";
|
11 | 12 | import { Context } from "../../src/IContext";
|
12 | 13 | import { FetchOptions } from "../../src/IFetchOptions";
|
| 14 | +import { RedirectHandlerOptions } from "../../src/middleware/options/RedirectHandlerOptions"; |
| 15 | +import { RedirectHandler } from "../../src/middleware/RedirectHandler"; |
| 16 | +import { TelemetryHandler } from "../../src/middleware/TelemetryHandler"; |
13 | 17 | import { DummyHTTPMessageHandler } from "../DummyHTTPMessageHandler";
|
14 | 18 |
|
15 | 19 | describe("HTTPClient.ts", () => {
|
@@ -68,4 +72,39 @@ describe("HTTPClient.ts", () => {
|
68 | 72 | }
|
69 | 73 | });
|
70 | 74 | });
|
| 75 | + |
| 76 | + describe("getMiddlewareArray", () => { |
| 77 | + it("Should work fine for a single middleware in the chain, which does have a getNext method", () => { |
| 78 | + const telemetryHandler = new TelemetryHandler(); |
| 79 | + const tempHttpClient: HTTPClient = new HTTPClient(telemetryHandler); |
| 80 | + assert.equal(tempHttpClient.getMiddlewareArray().length, 1); |
| 81 | + }); |
| 82 | + |
| 83 | + it("Should work fine for a single middleware in the chain, which doesn't have a getNext method", () => { |
| 84 | + const tempHttpClient: HTTPClient = new HTTPClient(httpMessageHandler); |
| 85 | + assert.equal(tempHttpClient.getMiddlewareArray().length, 1); |
| 86 | + }); |
| 87 | + |
| 88 | + it("Should work fine for a chain containing many middlewares", () => { |
| 89 | + const telemetryHandler = new TelemetryHandler(); |
| 90 | + const redirectHandler = new RedirectHandler(new RedirectHandlerOptions()); |
| 91 | + redirectHandler.setNext(telemetryHandler); |
| 92 | + telemetryHandler.setNext(httpMessageHandler); |
| 93 | + const tempHttpClient: HTTPClient = new HTTPClient(redirectHandler); |
| 94 | + assert.equal(tempHttpClient.getMiddlewareArray().length, 3); |
| 95 | + }); |
| 96 | + }); |
| 97 | + |
| 98 | + describe("setMiddlewareArray", () => { |
| 99 | + it("Should make a chain out of the provided array of middlewares", () => { |
| 100 | + const telemetryHandler = new TelemetryHandler(); |
| 101 | + const redirectHandler = new RedirectHandler(new RedirectHandlerOptions()); |
| 102 | + redirectHandler.setNext(httpMessageHandler); |
| 103 | + const tempHttpClient: HTTPClient = new HTTPClient(redirectHandler); |
| 104 | + const middlewareArray = tempHttpClient.getMiddlewareArray(); |
| 105 | + middlewareArray.splice(1, 0, telemetryHandler); |
| 106 | + tempHttpClient.setMiddlewareArray(middlewareArray); |
| 107 | + assert.equal(tempHttpClient.getMiddlewareArray().length, 3); |
| 108 | + }); |
| 109 | + }); |
71 | 110 | });
|
0 commit comments