mirror of
https://github.com/Kong/insomnia
synced 2024-11-08 23:00:30 +00:00
80 lines
2.2 KiB
JavaScript
80 lines
2.2 KiB
JavaScript
import {globalBeforeEach} from '../../__jest__/before-each';
|
|
import {buildMultipart} from '../multipart';
|
|
import path from 'path';
|
|
|
|
describe('buildMultipart()', () => {
|
|
beforeEach(globalBeforeEach);
|
|
|
|
it('builds a simple request', async () => {
|
|
const {body, boundary} = buildMultipart([
|
|
{name: 'foo', value: 'bar'},
|
|
{name: 'multi-line', value: 'Hello\nWorld!'}
|
|
]);
|
|
|
|
expect(boundary).toBe('------------------------X-INSOMNIA-BOUNDARY');
|
|
expect(body.toString()).toBe([
|
|
`--${boundary}`,
|
|
'Content-Disposition: form-data; name="foo"',
|
|
'',
|
|
'bar',
|
|
`--${boundary}`,
|
|
'Content-Disposition: form-data; name="multi-line"',
|
|
'',
|
|
'Hello\nWorld!',
|
|
`--${boundary}--`,
|
|
''
|
|
].join('\r\n'));
|
|
});
|
|
|
|
it('builds with file', async () => {
|
|
const fileName = path.resolve(path.join(__dirname, './testfile.txt'));
|
|
const {body, boundary} = buildMultipart([
|
|
{name: 'foo', value: 'bar'},
|
|
{name: 'file', type: 'file', fileName: fileName},
|
|
{name: 'baz', value: 'qux'}
|
|
]);
|
|
|
|
expect(boundary).toBe('------------------------X-INSOMNIA-BOUNDARY');
|
|
expect(body.toString()).toBe([
|
|
`--${boundary}`,
|
|
'Content-Disposition: form-data; name="foo"',
|
|
'',
|
|
'bar',
|
|
`--${boundary}`,
|
|
'Content-Disposition: form-data; name="file"; filename="testfile.txt"',
|
|
'Content-Type: text/plain',
|
|
'',
|
|
'Hello World!\n\nHow are you?',
|
|
`--${boundary}`,
|
|
'Content-Disposition: form-data; name="baz"',
|
|
'',
|
|
'qux',
|
|
`--${boundary}--`,
|
|
''
|
|
].join('\r\n'));
|
|
});
|
|
|
|
it('skips entries with no name or value', async () => {
|
|
const {body, boundary} = buildMultipart([
|
|
{value: 'bar'},
|
|
{name: 'foo'},
|
|
{name: '', value: ''},
|
|
{name: '', type: 'file', fileName: ''}
|
|
]);
|
|
|
|
expect(boundary).toBe('------------------------X-INSOMNIA-BOUNDARY');
|
|
expect(body.toString()).toBe([
|
|
`--${boundary}`,
|
|
'Content-Disposition: form-data; name=""',
|
|
'',
|
|
'bar',
|
|
`--${boundary}`,
|
|
'Content-Disposition: form-data; name="foo"',
|
|
'',
|
|
'',
|
|
`--${boundary}--`,
|
|
''
|
|
].join('\r\n'));
|
|
});
|
|
});
|