From 553bc83504e61c7cf98c773772f4e92cd2b55d1f Mon Sep 17 00:00:00 2001 From: jules Ivanic Date: Wed, 18 Oct 2023 16:12:44 +0400 Subject: [PATCH 1/4] Add a test of a middleware providing a context to a `Routes` --- .../zio/http/internal/middlewares/AuthSpec.scala | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/zio-http/src/test/scala/zio/http/internal/middlewares/AuthSpec.scala b/zio-http/src/test/scala/zio/http/internal/middlewares/AuthSpec.scala index a59f875e47..7bdab111a5 100644 --- a/zio-http/src/test/scala/zio/http/internal/middlewares/AuthSpec.scala +++ b/zio-http/src/test/scala/zio/http/internal/middlewares/AuthSpec.scala @@ -16,13 +16,12 @@ package zio.http.internal.middlewares +import zio.http._ +import zio.http.internal.HttpAppTestExtensions import zio.test.Assertion._ import zio.test._ import zio.{Ref, ZIO} -import zio.http._ -import zio.http.internal.HttpAppTestExtensions - object AuthSpec extends ZIOHttpSpec with HttpAppTestExtensions { def extractStatus(response: Response): Status = response.status @@ -77,6 +76,15 @@ object AuthSpec extends ZIOHttpSpec with HttpAppTestExtensions { } @@ basicAuthContextM).merge.mapZIO(_.body.asString) assertZIO(app.runZIO(Request.get(URL.empty).copy(headers = successBasicHeader)))(equalTo("user")) }, + test("Extract username via context with Routes") { + val app = { + Routes( + Method.GET / "context" -> + Handler.fromFunction[(AuthContext, Request)] { case (c, _) => Response.text(c.value) }, + ) @@ basicAuthContextM + }.toHttpApp + assertZIO(app.runZIO(Request.get(URL.root / "context").copy(headers = successBasicHeader)))(equalTo("user")) + }, ), suite("basicAuthZIO")( test("HttpApp is accepted if the basic authentication succeeds") { From 1fd4957a327d91e382dfb1c2d38e826212e5fa00 Mon Sep 17 00:00:00 2001 From: jules Ivanic Date: Wed, 18 Oct 2023 16:12:44 +0400 Subject: [PATCH 2/4] Add a test of a middleware providing a context to a `Routes` --- .../zio/http/internal/middlewares/AuthSpec.scala | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/zio-http/src/test/scala/zio/http/internal/middlewares/AuthSpec.scala b/zio-http/src/test/scala/zio/http/internal/middlewares/AuthSpec.scala index 7bdab111a5..51915786f4 100644 --- a/zio-http/src/test/scala/zio/http/internal/middlewares/AuthSpec.scala +++ b/zio-http/src/test/scala/zio/http/internal/middlewares/AuthSpec.scala @@ -79,11 +79,15 @@ object AuthSpec extends ZIOHttpSpec with HttpAppTestExtensions { test("Extract username via context with Routes") { val app = { Routes( - Method.GET / "context" -> - Handler.fromFunction[(AuthContext, Request)] { case (c, _) => Response.text(c.value) }, - ) @@ basicAuthContextM + Method.GET / "context" -> basicAuthContextM -> + Handler.fromFunction[(AuthContext, Request)] { case (c: AuthContext, _) => Response.text(c.value) } + ) }.toHttpApp - assertZIO(app.runZIO(Request.get(URL.root / "context").copy(headers = successBasicHeader)))(equalTo("user")) + assertZIO( + app + .runZIO(Request.get(URL.root / "context").copy(headers = successBasicHeader)) + .flatMap(_.body.asString) + )(equalTo("user")) }, ), suite("basicAuthZIO")( From 0b3033f2ce4979070492693f3b78b5c3dfd89f05 Mon Sep 17 00:00:00 2001 From: jules Ivanic Date: Wed, 18 Oct 2023 18:22:57 +0400 Subject: [PATCH 3/4] scalafmt --- .../test/scala/zio/http/internal/middlewares/AuthSpec.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zio-http/src/test/scala/zio/http/internal/middlewares/AuthSpec.scala b/zio-http/src/test/scala/zio/http/internal/middlewares/AuthSpec.scala index 51915786f4..8e9d69b6c1 100644 --- a/zio-http/src/test/scala/zio/http/internal/middlewares/AuthSpec.scala +++ b/zio-http/src/test/scala/zio/http/internal/middlewares/AuthSpec.scala @@ -80,13 +80,13 @@ object AuthSpec extends ZIOHttpSpec with HttpAppTestExtensions { val app = { Routes( Method.GET / "context" -> basicAuthContextM -> - Handler.fromFunction[(AuthContext, Request)] { case (c: AuthContext, _) => Response.text(c.value) } + Handler.fromFunction[(AuthContext, Request)] { case (c: AuthContext, _) => Response.text(c.value) }, ) }.toHttpApp assertZIO( app .runZIO(Request.get(URL.root / "context").copy(headers = successBasicHeader)) - .flatMap(_.body.asString) + .flatMap(_.body.asString), )(equalTo("user")) }, ), From 8c20cd503b0a0edecb0cf4607223acbb5ce17fcc Mon Sep 17 00:00:00 2001 From: jules Ivanic Date: Wed, 18 Oct 2023 18:28:12 +0400 Subject: [PATCH 4/4] scalafmt --- .../test/scala/zio/http/internal/middlewares/AuthSpec.scala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/zio-http/src/test/scala/zio/http/internal/middlewares/AuthSpec.scala b/zio-http/src/test/scala/zio/http/internal/middlewares/AuthSpec.scala index 8e9d69b6c1..7b679c7883 100644 --- a/zio-http/src/test/scala/zio/http/internal/middlewares/AuthSpec.scala +++ b/zio-http/src/test/scala/zio/http/internal/middlewares/AuthSpec.scala @@ -16,12 +16,13 @@ package zio.http.internal.middlewares -import zio.http._ -import zio.http.internal.HttpAppTestExtensions import zio.test.Assertion._ import zio.test._ import zio.{Ref, ZIO} +import zio.http._ +import zio.http.internal.HttpAppTestExtensions + object AuthSpec extends ZIOHttpSpec with HttpAppTestExtensions { def extractStatus(response: Response): Status = response.status