Можно ли применить passThrough() в ложном ответе с помощью axios-mock-adapter?
Среда:
NodeJS 8.1.2
axios 0.16.2
axios-mock-adapter 1.9.0
Тестируя конечную точку JSON-RPC, могу ли я сделать что-то вроде этого:
const mockHttpClient = new MockAdapter(axios, { delayResponse: 50 })
mockHttpClient.onPost().reply((config) => { // Capture all POST methods
const dataObj = JSON.parse(config.data) // Example data: '{"jsonrpc":"2.0","method":"getProduct","params":[123],"id":0}'
if (dataObj.method === 'getProduct') { // Recognised method, provide mock response override
return [200, { jsonrpc: '2.0', id: 0, result: { productId: 123, productName: 'Lorem' } }]
}
// TODO: PassThrough for all non-recognised methods
})
mockHttpClient.onAny().passThrough() // Allow pass through on anything that's not a POST method
0 ответов
Вы можете сделать это, передав вызов исходному адаптеру внутри reply
Перезвоните:
mockHttpClient.onPost().reply((config) => { // Capture all POST methods
const dataObj = JSON.parse(config.data) // Example data: '{"jsonrpc":"2.0","method":"getProduct","params":[123],"id":0}'
if (dataObj.method === 'getProduct') { // Recognised method, provide mock response override
return [200, { jsonrpc: '2.0', id: 0, result: { productId: 123, productName: 'Lorem' } }]
}
// PassThrough for all non-recognised methods
return mockHttpClient.originalAdapter(config);
})
По сути, это то, что passThrough()
делает.