|
8 | 8 | import { assert } from "chai"; |
9 | 9 | import "isomorphic-fetch"; |
10 | 10 |
|
| 11 | +import { CustomAuthenticationProvider, TelemetryHandler } from "../../src"; |
11 | 12 | import { Client } from "../../src/Client"; |
12 | 13 | import { AuthProvider } from "../../src/IAuthProvider"; |
13 | 14 | import { ClientOptions } from "../../src/IClientOptions"; |
14 | 15 | import { Options } from "../../src/IOptions"; |
| 16 | +import { AuthenticationHandler } from "../../src/middleware/AuthenticationHandler"; |
| 17 | +import { ChaosHandler } from "../../src/middleware/ChaosHandler"; |
| 18 | +import { ChaosHandlerOptions } from "../../src/middleware/options/ChaosHandlerOptions"; |
| 19 | +import { ChaosStrategy } from "../../src/middleware/options/ChaosStrategy"; |
15 | 20 | import { DummyAuthenticationProvider } from "../DummyAuthenticationProvider"; |
16 | 21 | import { DummyHTTPMessageHandler } from "../DummyHTTPMessageHandler"; |
17 | 22 |
|
@@ -61,6 +66,41 @@ describe("Client.ts", () => { |
61 | 66 | assert.equal(error.name, "InvalidMiddlewareChain"); |
62 | 67 | } |
63 | 68 | }); |
| 69 | + |
| 70 | + it("Init middleware using a middleware array", async () => { |
| 71 | + const provider: AuthProvider = (done) => { |
| 72 | + done(null, "dummy_token"); |
| 73 | + }; |
| 74 | + const authHandler = new AuthenticationHandler(new CustomAuthenticationProvider(provider)); |
| 75 | + const responseBody = "Test response body"; |
| 76 | + const options = new ChaosHandlerOptions(ChaosStrategy.MANUAL, "Testing middleware array", 200, 0, responseBody); |
| 77 | + const middlewareArray = [authHandler, new ChaosHandler(options)]; |
| 78 | + const client = Client.initWithMiddleware({ middleware: middlewareArray }); |
| 79 | + |
| 80 | + const response = await client.api("me").get(); |
| 81 | + assert.equal(response, responseBody); |
| 82 | + }); |
| 83 | + |
| 84 | + it("Init middleware using a chained middleware array", async () => { |
| 85 | + const provider: AuthProvider = (done) => { |
| 86 | + done(null, "dummy_token"); |
| 87 | + }; |
| 88 | + const authHandler = new AuthenticationHandler(new CustomAuthenticationProvider(provider)); |
| 89 | + |
| 90 | + const responseBody = "Test response body"; |
| 91 | + const options = new ChaosHandlerOptions(ChaosStrategy.MANUAL, "Testing chained middleware array", 200, 0, responseBody); |
| 92 | + const chaosHandler = new ChaosHandler(options); |
| 93 | + const telemetryHandler = new TelemetryHandler(); |
| 94 | + |
| 95 | + authHandler.setNext(telemetryHandler); |
| 96 | + telemetryHandler.setNext(chaosHandler); |
| 97 | + |
| 98 | + const middlewareArray = [authHandler]; |
| 99 | + const client = Client.initWithMiddleware({ middleware: middlewareArray }); |
| 100 | + |
| 101 | + const response = await client.api("me").get(); |
| 102 | + assert.equal(response, responseBody); |
| 103 | + }); |
64 | 104 | }); |
65 | 105 |
|
66 | 106 | describe("init", () => { |
|
0 commit comments