mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-04-24 09:38:29 +02:00
Fix curl export with multi-line body
This commit is contained in:
@@ -80,6 +80,26 @@ describe('exporter-curl', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('Exports multi-line JSON body', () => {
|
||||||
|
expect(
|
||||||
|
pluginHookExport({
|
||||||
|
url: 'https://yaak.app',
|
||||||
|
method: 'POST',
|
||||||
|
bodyType: 'application/json',
|
||||||
|
body: {
|
||||||
|
text: `{"foo":"bar",\n"baz":"qux"}`,
|
||||||
|
},
|
||||||
|
headers: [{ name: 'Content-Type', value: 'application/json' }],
|
||||||
|
}),
|
||||||
|
).toEqual(
|
||||||
|
[
|
||||||
|
`curl -X POST 'https://yaak.app'`,
|
||||||
|
`--header 'Content-Type: application/json'`,
|
||||||
|
`--data-raw $'{"foo":"bar",\n"baz":"qux"}'`,
|
||||||
|
].join(` \\\n `),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
test('Exports headers', () => {
|
test('Exports headers', () => {
|
||||||
expect(
|
expect(
|
||||||
pluginHookExport({
|
pluginHookExport({
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ export function pluginHookImport(rawData: string) {
|
|||||||
|
|
||||||
// Replace non-escaped newlines with semicolons to make parsing easier
|
// Replace non-escaped newlines with semicolons to make parsing easier
|
||||||
// NOTE: This is really slow in debug build but fast in release mode
|
// NOTE: This is really slow in debug build but fast in release mode
|
||||||
const normalizedData = rawData.replace(/([^\\])\n/g, '$1; ');
|
const normalizedData = rawData.replace(/\ncurl/g, '; curl');
|
||||||
|
|
||||||
let currentCommand: ParseEntry[] = [];
|
let currentCommand: ParseEntry[] = [];
|
||||||
|
|
||||||
|
|||||||
@@ -177,6 +177,27 @@ describe('importer-curl', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('Imports multi-line JSON', () => {
|
||||||
|
expect(
|
||||||
|
pluginHookImport(
|
||||||
|
`curl -H Content-Type:application/json -d $'{\n "foo":"bar"\n}' https://yaak.app`,
|
||||||
|
),
|
||||||
|
).toEqual({
|
||||||
|
resources: {
|
||||||
|
workspaces: [baseWorkspace()],
|
||||||
|
httpRequests: [
|
||||||
|
baseRequest({
|
||||||
|
method: 'POST',
|
||||||
|
url: 'https://yaak.app',
|
||||||
|
headers: [{ name: 'Content-Type', value: 'application/json' }],
|
||||||
|
bodyType: 'application/json',
|
||||||
|
body: { text: '{\n "foo":"bar"\n}' },
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
test('Imports multiple headers', () => {
|
test('Imports multiple headers', () => {
|
||||||
expect(
|
expect(
|
||||||
pluginHookImport('curl -H Foo:bar --header Name -H AAA:bbb -H :ccc https://yaak.app'),
|
pluginHookImport('curl -H Foo:bar --header Name -H AAA:bbb -H :ccc https://yaak.app'),
|
||||||
|
|||||||
Reference in New Issue
Block a user