Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
it('parses b64 file', async () => {
const payload =
'--AaB03x\r\n' +
'content-disposition: form-data; name="field"; filename="file.txt"\r\n' +
'content-transfer-encoding: base64\r\n' +
'\r\n' +
B64.encode(Buffer.from('this is the content of the file')) + '\r\n' +
'--AaB03x--';
const data = await simulate(payload, 'AaB03x');
expect(data).to.equal({
field: {
value: 'this is the content of the file',
headers: {
'content-disposition': 'form-data; name="field"; filename="file.txt"',
'content-transfer-encoding': 'base64'
},
filename: 'file.txt'
}
});
});
it('handles unusual filename', async () => {
const blankgif = Fs.readFileSync('./test/files/blank.gif');
const filename = ': \\ ? % * | %22 < > . ? ; \' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt';
const payload =
'--AaB03x\r\n' +
'content-disposition: form-data; name="file"; filename="' + filename + '"\r\n' +
'content-transfer-encoding: base64\r\n' +
'Content-Type: image/gif\r\n' +
'\r\n' +
B64.encode(blankgif) + '\r\n' +
'--AaB03x--\r\n';
const data = await simulate(payload, 'AaB03x');
expect(data).to.equal({
file: {
value: blankgif.toString(),
headers: {
'content-disposition': 'form-data; name="file"; filename="' + filename + '"',
'content-transfer-encoding': 'base64',
'content-type': 'image/gif'
},
filename
}
});
});
});
it('parses a png file', async () => {
const png = Fs.readFileSync('./test/files/image.png');
const payload =
'--AaB03x\r\n' +
'content-disposition: form-data; name="sticker"; filename="image.png"\r\n' +
'content-transfer-encoding: base64\r\n' +
'Content-Type: image/png\r\n' +
'\r\n' +
B64.encode(png) + '\r\n' +
'--AaB03x--\r\n';
const data = await simulate(payload, 'AaB03x');
expect(data).to.equal({
sticker: {
value: png.toString(),
headers: {
'content-disposition': 'form-data; name="sticker"; filename="image.png"',
'content-transfer-encoding': 'base64',
'content-type': 'image/png'
},
filename: 'image.png'
}
});
});