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.*
import zio.http.netty.client.ConnectionPool import zio.http.netty.client.ConnectionPool
import zio.http.* 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.http.model.Headers.{Header, empty}
import zio.json.* import zio.json.*
import zio.json.ast.{Json, JsonCursor} import zio.json.ast.{Json, JsonCursor}
@ -44,7 +44,9 @@ object LoginPageHandlerTests extends ZIOSpecDefault {
response <- post(Request.post(body, URL.empty)) response <- post(Request.post(body, URL.empty))
json <- getJsonBody(response) json <- getJsonBody(response)
errorType <- parseAttribute(json, "error", JsonCursor.field("error").isString) 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)) response <- post(Request.post(Body.fromString("""{"password":"123456","email":"unknownaccount@gmail.com"}"""), URL.empty))
json <- getJsonBody(response) json <- getJsonBody(response)
errorType <- parseAttribute(json, "error", JsonCursor.field("error").isString) errorType <- parseAttribute(json, "error", JsonCursor.field("error").isString)
errorMsg <- parseAttribute(json, "msg", JsonCursor.field("msg").isString)
yield yield
//assert that the response error is of type unauthorized and headers are Location: /register //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")))) && assert(response)(hasField("headers", _.headers, hasSameElements(Headers.location("/register"))))
}, },
@ -66,8 +71,21 @@ object LoginPageHandlerTests extends ZIOSpecDefault {
for for
response <- post(Request.post(Body.fromString("""{"password":"123456","email":"maximebatista18@gmail.com"}"""), URL.empty)) response <- post(Request.post(Body.fromString("""{"password":"123456","email":"maximebatista18@gmail.com"}"""), URL.empty))
yield yield
assert(response)(hasField("body", _.body, equalTo(Body.empty))) //TODO assert that the cookie name is JWT assert(response)(hasField("status", _.status, equalTo(Status.Found)))
assert(response)(hasField("headers", _.headers, exists(hasField("key", _.key, equalTo(HeaderNames.setCookie))))) && 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"))))
} }
) )
} }