Я получаюSupertest + Restify gzipResponse загрузки файла
TypeError: Cannot read property 'status' of undefined
при попытке загрузить файл с помощью Supertest к простому restify сервера, с gzipResponse
включен.
Версии и т.д.:
$ npm list | grep 'super\|mocha\|restify'
├─┬ [email protected]
├─┬ [email protected]
└─┬ [email protected]
└─┬ [email protected]
$ node -v
v5.5.0
Сервер:
const restify = require('restify');
const server = restify.createServer();
server.use(restify.gzipResponse());
server.put('image', (req, res) => {
res.send(200);
});
module.exports = server;
Тест:
const request = require('supertest');
const server = require('./index');
const path = require('path');
describe('insertImage', function() {
it('should send an image', done => {
request(server)
.put('/image')
.attach('image', path.join(__dirname, 'pc.png'))
.expect(200, done);
});
});
тест будет проходить при gzipResponse
отключен, и она будет также, если пройти не файл прилагается.
Я не уверен, связана ли эта проблема с суперагентом/суперсетевым, или проблема заключается в том, чтобы восстановить/gzip. Любая помощь приветствуется.
Да, это странно, я знаю. Кажется, что это проблема с конкретным компилятором restify + compression + supertest. Загрузка файла с помощью curl отлично работает ... – Edo
@ Просто я обновил ответ, чтобы показать пример, используя restify в качестве сервера API. Я использую те же отпечатки, включая узел 5.5. Вам нужен вызов server.listen? – Mikelax
Выполнение ваших тестов не подходит для меня, потому что кажется, что вы забыли аргументы 'done', в своих' it' тестах. Я добавил аргумент done и выполнил ваши тесты с помощью вызова 'server.listen', но у меня все еще есть ошибка загрузки. Очень странно. – Edo