Skip to content

Another way to condition a response #55

@irsooti

Description

@irsooti

Description

In my common use cases, I don't have the ability to add a search param to do a conditional response.

Consider this silly scenario:

test('something', () => {

const user = getUser() 
expect(user).toBe(someCondition)
})

The function getUser contains a fetch request that retrieves users.

In the case of a happy path (200), the handlers created using fromOpenApi are fine. Now, let's repeat the same test using another type of response, for instance a 400 one.

According to the documentation, I should add a search parameter response to retrieve the response coupled with the status code, but as shown in the scenario, I can't just add the parameter because it's a detail I don't have control over (it could be something from a package, or a prebuild sdk with all the http calls inside).

Alternatives

Maybe it could be easier to consider some utility to control the status code of the msw handlers, I do not have a good idea to propose but conceptually is something like:

import { sourceryFnThatEditResponseCode } from '@msw/source'

test('something', () => {
// intercept '/the-endpoint-to-sent-in-400' and reply with 400 so retrieve the response based on 400 schema
sourceryFnThatEditResponseCode(...)

const user = getUser()

expect(user).toBe(someCondition)
}

wdyt?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions