J'ajoute des tests d'intégration à un héritage de code base avant refactoring. Pour ce cas, téléchargez un fichier.Node.js ne peuvent pas télécharger le fichier dans le test d'intégration
Le test:
it('uploads a photo at the specified index', done => {
chai.request(server.instance)
.post('/profile/photo/0')
.set('Access-Token', `${token}`)
.set('API-Key', testConfig.apiKey)
.field({contentId: 'foobar'})
.attach('file', fs.readFileSync(__dirname + '/logo.png'), 'file')
.end((err, res) => {
console.log(JSON.stringify(res.body))
res.should.have.status(200)
done()
})
})
Le critère d'évaluation testé fonctionne bien dans la production. Mais pour faire passer le test, je dois commenter les lignes suivantes make-middleware.js
du module multer
:
if (!includeFile) {
// appender.removePlaceholder(placeholder)
// return fileStream.resume()
}
inexpérimenté avec nœud Être, je dois avez raté une configuration ou quelque chose. Comment puis-je faire passer mon test (sans modifier le code d'un module externe)?
Êtes-vous confiant à 100% que 'fs.readFileSync (__ dirname + '/logo.png')' lit le fichier? BTW: Ce serait une bonne idée d'utiliser 'path.join (__dirname, 'logo.png')' pour qu'il n'échoue pas sous Windows. – pawel
@pawel Oui, absolument confiant qu'il est lu correctement. Bon conseil sur les fenêtres, merci. –
Avez-vous utilisé le point de terminaison (en dehors de ce test) affichant le même fichier ('logo.png'). On dirait que vous avez défini un filtre de fichier pour multer sur votre serveur et le fichier ne passe pas, il ... – cviejo