Подтвердить что ты не робот

Тестирование, если загрузка прошла успешно

Я тестирую конечные точки API с помощью supertest, и он отлично работает, но я не могу понять, как проверить успешность загрузки файла.

В файле маршрутов я определил конечную точку:

app.get('/api/attachment/:id/file', attachment.getFile);

и функция getFile() выглядит примерно так:

exports.getFile = function(req, res, next) {
    Attachment.getById(req.params.id, function(err, att) {
        [...]
        if (att) {
            console.log('File found!');
            return res.download(att.getPath(), att.name);
        }

Затем в моем тестовом файле я пробую следующее:

describe('when trying to download file', function() {
    it('should respond with "200 OK"', function(done) {
        request(url)
        .get('/api/attachment/' + attachment._id + '/file');
        .expect(200)
        .end(function(err, res) {
            if (err) {
                return done(err);
            }
            return done();
        });
    });
});

Я точно знаю, что файл найден, потому что он выходит из File found!. Он также отлично работает, если я попробую вручную, но по какой-то причине mocha возвращает Error: expected 200 "OK", got 404 "Not Found".

Я экспериментировал с разными типами mime и supertest .set("Accept-Encoding": "*"), но ничего не работает.

Кто-нибудь знает, как это сделать?

4b9b3361

Ответ 1

Либо проблема устранена в библиотеках, либо есть ошибка в какой-либо другой части вашего кода. Ваш пример отлично работает и дает

  when trying to download file
File found!
    ✓ should respond with "200 OK"