Je reçoisSupertest + Restify fichier gzipResponse télécharger
TypeError: Cannot read property 'status' of undefined
lors d'une tentative de télécharger un fichier à l'aide Supertest à un simple serveur restify, avec gzipResponse
activé.
Versions etc:
$ npm list | grep 'super\|mocha\|restify'
├─┬ [email protected]
├─┬ [email protected]
└─┬ [email protected]
└─┬ [email protected]
$ node -v
v5.5.0
Le serveur:
const restify = require('restify');
const server = restify.createServer();
server.use(restify.gzipResponse());
server.put('image', (req, res) => {
res.send(200);
});
module.exports = server;
Le test:
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);
});
});
Le test PASSERA lorsque gzipResponse
est désactivé, et il passera également si aucune le fichier est joint.
Je ne suis pas sûr que ce problème soit lié au super-agent/supertest, ou que le problème soit lié à restify/gzip. Toute aide est appréciée.
Ouais c'est bizarre, je sais. Cela semble vraiment être un problème avec le combo spécifique restify + compression + supertest. Le téléchargement d'un fichier en utilisant curl fonctionne parfaitement ... – Edo
@Edo Je viens de mettre à jour la réponse pour montrer un exemple en utilisant restify comme serveur API. J'utilise les mêmes deps incluant le nœud 5.5. Avez-vous besoin d'un appel server.listen? – Mikelax
L'exécution de vos tests échoue pour moi car il semble que vous ayez oublié les arguments 'done' dans vos tests' it'. J'ai ajouté l'argument done et j'ai exécuté vos tests avec l'appel 'server.listen', mais le test de téléchargement échoue toujours. Très étrange. – Edo