Skip to content

Another way to condition a response #55

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions