From af69f8708a55da2a719ad53e229473411e1b8a53 Mon Sep 17 00:00:00 2001 From: Eric Crooks Date: Fri, 17 Jul 2020 22:52:52 -0400 Subject: [PATCH] [issue-#324-execute-middleware-for-static-assets] add tests --- tests/unit/http/middleware_test.ts | 46 ++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/tests/unit/http/middleware_test.ts b/tests/unit/http/middleware_test.ts index 0e93fb789..6ffe887b9 100644 --- a/tests/unit/http/middleware_test.ts +++ b/tests/unit/http/middleware_test.ts @@ -138,6 +138,36 @@ Rhum.testPlan("http/middleware_test.ts", () => { const response = await server.handleHttpRequest(request); members.assertResponseJsonEquals(members.responseBody(response), "got"); }); + + Rhum.testCase("before_request: static path asset", async () => { + let server = new Drash.Http.Server({ + static_paths: ["/assets"], + middleware: { + before_request: [BeforeRequestStaticPathAsset], + }, + }); + const request = members.mockRequest("/assets/test.js", "get"); + const response = await server.handleHttpRequest(request); + members.assertResponseJsonEquals( + members.responseBody(response), + "Hello, I'm a static path asset before request middleware.", + ); + }); + + Rhum.testCase("after_request: static path asset", async () => { + let server = new Drash.Http.Server({ + static_paths: ["/assets"], + middleware: { + after_request: [AfterRequestStaticPathAsset], + }, + }); + const request = members.mockRequest("/assets/test.js", "get"); + const response = await server.handleHttpRequest(request); + members.assertResponseJsonEquals( + members.responseBody(response), + "this static path asset's contents got changed", + ); + }); }); }); @@ -218,3 +248,19 @@ function VerifyCsrfToken(req: Drash.Http.Request) { ); } } + +function BeforeRequestStaticPathAsset(req: Drash.Http.Request) { + throw new Drash.Exceptions.HttpException( + 418, + "Hello, I'm a static path asset before request middleware.", + ); +} + +function AfterRequestStaticPathAsset( + req: Drash.Http.Request, + res?: Drash.Http.Response, +) { + if (res) { + res.body = "this static path asset's contents got changed"; + } +}