|
|
|
@ -13,7 +13,7 @@ import org.tbasket.test.pages.LoginPageHandlerTests.test
|
|
|
|
|
import zio.*
|
|
|
|
|
import zio.http.netty.client.ConnectionPool
|
|
|
|
|
import zio.http.*
|
|
|
|
|
import zio.http.model.{HeaderNames, Headers}
|
|
|
|
|
import zio.http.model.{HeaderNames, Headers, Status}
|
|
|
|
|
import zio.http.model.Headers.{Header, empty}
|
|
|
|
|
import zio.json.*
|
|
|
|
|
import zio.json.ast.{Json, JsonCursor}
|
|
|
|
@ -44,7 +44,9 @@ object LoginPageHandlerTests extends ZIOSpecDefault {
|
|
|
|
|
response <- post(Request.post(body, URL.empty))
|
|
|
|
|
json <- getJsonBody(response)
|
|
|
|
|
errorType <- parseAttribute(json, "error", JsonCursor.field("error").isString)
|
|
|
|
|
yield assertTrue(errorType == "invalid request")
|
|
|
|
|
yield
|
|
|
|
|
assert(response)(hasField("status", _.status, equalTo(Status.Unauthorized)))
|
|
|
|
|
&& assertTrue(errorType == "invalid request")
|
|
|
|
|
}
|
|
|
|
|
))
|
|
|
|
|
)
|
|
|
|
@ -56,9 +58,12 @@ object LoginPageHandlerTests extends ZIOSpecDefault {
|
|
|
|
|
response <- post(Request.post(Body.fromString("""{"password":"123456","email":"unknownaccount@gmail.com"}"""), URL.empty))
|
|
|
|
|
json <- getJsonBody(response)
|
|
|
|
|
errorType <- parseAttribute(json, "error", JsonCursor.field("error").isString)
|
|
|
|
|
errorMsg <- parseAttribute(json, "msg", JsonCursor.field("msg").isString)
|
|
|
|
|
yield
|
|
|
|
|
//assert that the response error is of type unauthorized and headers are Location: /register
|
|
|
|
|
assert(errorType)(equalTo("unauthorized"))
|
|
|
|
|
assert(response)(hasField("status", _.status, equalTo(Status.Unauthorized)))
|
|
|
|
|
&& assert(errorType)(equalTo("unauthorized"))
|
|
|
|
|
&& assert(errorMsg)(equalTo("unknown user email"))
|
|
|
|
|
&& assert(response)(hasField("headers", _.headers, hasSameElements(Headers.location("/register"))))
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
@ -66,8 +71,21 @@ object LoginPageHandlerTests extends ZIOSpecDefault {
|
|
|
|
|
for
|
|
|
|
|
response <- post(Request.post(Body.fromString("""{"password":"123456","email":"maximebatista18@gmail.com"}"""), URL.empty))
|
|
|
|
|
yield
|
|
|
|
|
assert(response)(hasField("body", _.body, equalTo(Body.empty))) //TODO assert that the cookie name is JWT
|
|
|
|
|
assert(response)(hasField("headers", _.headers, exists(hasField("key", _.key, equalTo(HeaderNames.setCookie)))))
|
|
|
|
|
assert(response)(hasField("status", _.status, equalTo(Status.Found)))
|
|
|
|
|
&& assert(response)(hasField("body", _.body, equalTo(Body.empty))) //TODO assert that the cookie name is JWT
|
|
|
|
|
&& assert(response)(hasField("headers", _.headers, exists(hasField("key", _.key, equalTo(HeaderNames.setCookie)))))
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
test("login with known account wrong password") {
|
|
|
|
|
for
|
|
|
|
|
response <- post(Request.post(Body.fromString("""{"password":"this is a wrong password","email":"maximebatista18@gmail.com"}"""), URL.empty))
|
|
|
|
|
json <- getJsonBody(response)
|
|
|
|
|
errorType <- parseAttribute(json, "error", JsonCursor.field("error").isString)
|
|
|
|
|
errorMsg <- parseAttribute(json, "msg", JsonCursor.field("msg").isString)
|
|
|
|
|
yield
|
|
|
|
|
assert(errorType)(equalTo("unauthorized"))
|
|
|
|
|
&& assert(errorMsg)(equalTo("invalid password"))
|
|
|
|
|
&& assert(response)(hasField("headers", _.headers, hasSameElements(Headers.location("/register"))))
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|