4
jasmine 테스트에서 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
파일 형식을 읽는 데 사용중인 논리를 게시 할 수 있습니까? –