1
バージョンなど:
$ 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
が無効になっているとき、テストに合格し、ノーならば、それも通過しますファイルが添付されています。
この問題がsuperagent/supertest関連であるのか、問題がrestify/gzipにあるのか不明です。どんな助けもありがとうございます。
奇妙なことですが、私は知っています。実際には、特定のrestify + compression + supertestコンボの問題であるようです。 curlを使用してファイルをアップロードすると、完璧に動作します。 – Edo
@Edo APIサーバーとしてrestifyを使用した例を示すために答えを更新しました。私はノード5.5を含む同じdepsを使用しています。 server.listenコールが必要ですか? – Mikelax
あなたのテストを走らせることは、あなたの 'it'テストで' done'引数を忘れてしまったように思えます。 done引数を追加し、 'server.listen'コールでテストを実行しましたが、アップロードテストに失敗しました。非常に奇妙な。 – Edo