4
ジャスミンテストでmultipart/form-dataペイロードを作成するためにstream-to-promise npmモジュールを使用しています。私のペイロードにはバッファとしてのイメージファイルが含まれていますが、ペイロードがstream-to-promiseに置かれると、何らかの形でペイロード内に元のイメージバッファが変更または破損してしまい、テストが失敗します。これを防ぐ方法はありますか?私の元のバッファを変更するストリームを約束する方法を停止する方法
it('test /identity-verification/your-first-form-of-id POST with validation passing', function(done){
var form = new FormData();
var image = fs.createReadStream("image.png");
streamToBuffer(image, function (err, buffer) {
form.append('firstID', 'passport');
form.append('firstIDImage', buffer);
var headers = form.getHeaders();
streamToPromise(form).then(function(payload) {
var options = {
method: 'POST',
url: '/identity-verification/your-first-form-of-id',
payload: payload,
headers: headers
};
server.inject(options, function(response) {
expect(response.statusCode).toBe(302);
expect(response.headers.location).toMatch('/identity-verification/your-first-form-of-id/upload-successful');
done();
});
});
});
});
ストリームツー約束に通された後、ペイロード内のバッファは次のようになります。
buffer.toString()をログに記録していますか?それは、おそらく、奇妙なキャラクターを説明するでしょう。テストが失敗したときに表示されるエラーメッセージは何ですか? –
私はハンドラ関数内にrequest.payloadを記録しています。私のハンドラでは、バッファからファイルタイプを読み込もうとしていますが、バッファが壊れているか見えていないため、テストが失敗しています – Ruth
ファイルタイプを読み込むために使用しているロジックを投稿できますか? –