added test
continuous-integration/drone/push Build was killed Details

dev
Override-6 2 years ago
parent 4b80964de5
commit 9c9917ff9f

@ -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"))))
}
)
}