Я пытаюсь протестировать конечную точку, которая должна получить данные multipart / form. Я отправляю коллекцию изображений, которую хочу обработать и сохранить на сервере или CDN. Я использую Jest, Express и Грозный.
Конечная точка
router.post("/videos", async (req, res) => {
new formidable.IncomingForm().parse(req, (err, fields, files) => {
console.log('PARSE FORM');
if (err) {
console.error('Error', err);
throw err
}
console.log('Fields', fields);
console.log('Files', files);
for (const file of Object.entries(files)) {
console.log('FILE', file)
}
});
res.status(200).send('Created Video');
});
Тест
describe("Video Endpoints", () => {
it('should create a new timelapse video', done => {
request
.post('/api/videos')
.field('file', 'some random value')
.attach('image', `${__dirname}/__mocks__/image.png`)
.then(res => {
console.log('THEN');
done();
})
});
});
При запуске теста он не достигает грозного метода синтаксического анализа.
Если изменить метод my attach на этот ...
.attach('image', fs.readFileSync(`${__dirname}/__mocks__/xdebugcurlaccessingwpapi.png`))
Он достигнет метода синтаксического анализа, но он увидит это как поле, а не файл.
Если я сделаю тот же запрос, но из моего приложения реагирования, используя fetch, он отлично работает.
Что я делаю не так? Об этом уже несколько дней. Lol.
Любая помощь будет отличной.
Спасибо.