@@ -2,7 +2,9 @@ package io.moia.router
22
33import assertk.assert
44import assertk.assertions.isEqualTo
5+ import assertk.assertions.isFalse
56import assertk.assertions.isNullOrEmpty
7+ import assertk.assertions.isTrue
68import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent
79import io.mockk.mockk
810import io.moia.router.Router.Companion.router
@@ -278,6 +280,33 @@ class RequestHandlerTest {
278280 assert (response.body).isNullOrEmpty()
279281 }
280282
283+ @Test
284+ fun `Create should not return a location header` () {
285+ val response = testRequestHandler.handleRequest(
286+ POST (" /create-without-location" )
287+ .withHeader(" Accept" , " application/json" )
288+ .withHeader(" Content-Type" , " application/json" )
289+ .withBody(""" { "greeting": "some" }""" ),
290+ mockk()
291+ )
292+ assert (response.statusCode).isEqualTo(201 )
293+ assert (response.headers.containsKey(" location" )).isFalse()
294+ }
295+
296+ @Test
297+ fun `Create should return a location header` () {
298+ val response = testRequestHandler.handleRequest(
299+ POST (" /create-with-location" )
300+ .withHeader(" Accept" , " application/json" )
301+ .withHeader(" Content-Type" , " application/json" )
302+ .withBody(""" { "greeting": "some" }""" ),
303+ mockk()
304+ )
305+ assert (response.statusCode).isEqualTo(201 )
306+ assert (response.headers.containsKey(" location" )).isTrue()
307+ assert (response.headers[" location" ]).isEqualTo(" http://localhost/test" )
308+ }
309+
281310 class TestRequestHandlerAuthorization : RequestHandler () {
282311 override val router = router {
283312 GET (" /some" ) { _: Request <Unit > ->
@@ -372,6 +401,12 @@ class RequestHandlerTest {
372401 POST (" /no-content" ) { _: Request <TestRequest > ->
373402 ResponseEntity .noContent()
374403 }
404+ POST (" /create-without-location" ) { _: Request <TestRequest > ->
405+ ResponseEntity .created(null , null , emptyMap())
406+ }
407+ POST (" /create-with-location" ) { r: Request <TestRequest > ->
408+ ResponseEntity .created(null , r.apiRequest.location(" test" ), emptyMap())
409+ }
375410 }
376411 }
377412}
0 commit comments