面临 MSW 中无法检索 FormData 的问题,可能是由于异步/等待问题?

问题描述 投票:0回答:1

我正在编写一个测试用例来测试我的组件,该组件在上传时调用此 api,此 api 可能返回 2 个响应,即失败或成功。我想根据请求表单数据中的文件名来测试这两个条件。 我只能测试一种情况,因为如果我尝试在 msw 中使用 async wait 获取 formData,它不起作用,它会在那里停止执行并且不返回任何内容。

http.post(
`https://mydomain/upload`,
async ({ request }) => {
const info = await request.formData();
console.log('info--------------', info);
return HttpResponse.json(bulkUploadErrorResponse.FAILED);
}
)

我的测试用例看起来像这样

test('success message should appear on screen when a correct bulk file is uploaded', async () => {
renderWithAllProvider(<MyComponent />);

const file = generateXLSXFile('Sample Content', 'testFile');
const fileInput = screen.getByTestId('file-upload');

// eslint-disable-next-line
await act(async () => {
console.log('Uploading file ......');
await userEvent.upload(fileInput, file);
});

// eslint-disable-next-line
expect(
await screen.findByText(
'Bulk Upload for the inventory has been successfully uploaded!'
)
);
});
reactjs async-await jestjs react-testing-library msw
1个回答
0
投票

请问您找到解决这个问题了吗? 我今天遇到了完全相同的事情。 msw 在模拟前端响应期间正常工作的地方。 但是当谈到单元测试时,

await request.formData()
部分似乎失败了,在承诺捕获响应中没有说明原因。 formData函数在测试环境中肯定存在。

© www.soinside.com 2019 - 2024. All rights reserved.