Mockinizer icon indicating copy to clipboard operation
Mockinizer copied to clipboard

How to return success or error based on body params

Open kkl260 opened this issue 3 years ago • 1 comments

So I'm not sure if there is a way to do this or not, but in your examples, you have a success endpoint and a failure endpoint. In real life, there would be only 1 endpoint that returned success or failure.

So in my example, a user logs in and the body would be something like {"email":"[email protected]","password":"12345"} and they would get a token returned.

So my mock looks like this:

    RequestFilter("/v1/login", method = Method.POST) to MockResponse().apply {
        setResponseCode(200)
        setBody(
            """
                {
                "token":"000000000000000000000"
                } 
            """.trimIndent()
        )
        setBodyDelay(1, TimeUnit.SECONDS)
        setHeadersDelay(1, TimeUnit.SECONDS)
    }

Which is working fine. But what if I wanted to test a case where the login credentials are bad and therefore it returns an error? This way I can test what the UI looks like after the error response. Obviously, I would need to do this from the same endpoint.

So I would want setResponseCode to be conditional by somehow checking the request body

kkl260 avatar Mar 16 '21 18:03 kkl260

Hi @kkl260. Looks like what you are looking for is:

RequestFilter("/v1/login", method = Method.POST, body = """{"email":"[email protected]","password":"12345"}""" ) to MockResponse().apply {
        setResponseCode(200)
...

donfuxx avatar Mar 27 '21 20:03 donfuxx