orval
orval copied to clipboard
MSW: overrideResponse can be a function
Currently, a msw mock handler would be:
import { HttpResponse, HttpResponseResolver, delay, http } from 'msw'
export const getSomethingMockHandler = (overrideResponse?: SomethingResponse) => {
return http.get('/something', async () => {
await delay(1000);
return new HttpResponse(JSON.stringify(overrideResponse ? overrideResponse : getSomethingResponseMock()),
{
status: 200,
headers: {
'Content-Type': 'application/json',
}
}
)
})
}
But it would be nice if overrideResponse is a function. So that we can produce response programmatically.
export const getSomethingMockHandler = (overrideResponse?: (resolver: HttpResponseResolver) => SomethingResponse | Promise<SomethingResponse>) => {
return http.get('/something', async (resolver) => {
await delay(1000);
const response = overrideResponse ? overrideResponse(resolver) : getSomethingResponseMock()
return new HttpResponse(JSON.stringify(response)),
{
status: 200,
headers: {
'Content-Type': 'application/json',
}
}
)
})
}
@soartec-lab is this the same issue you just fixed in 6.28.0? https://github.com/anymaniax/orval/issues/1293
@melloware No, this is separate from #1293. I'll add an enhancement label to this.