From 4e2c28e2cd7af913385306158bdf90045a3fa47a Mon Sep 17 00:00:00 2001 From: Flawid DSouza Date: Thu, 26 Dec 2024 17:25:26 +0530 Subject: [PATCH] fix(ui): Import > Postman v2 > path params not imported (fixes #293) --- packages/ui/src/parsers/postman.spec.ts | 10 ++++++---- packages/ui/src/parsers/postman.ts | 13 +++++++++++++ .../postman-import-v2/Restfox_2024-09-06.json | 7 +++++++ .../test-data/postman-import-v2/test-snapshot.json | 7 +++++++ 4 files changed, 33 insertions(+), 4 deletions(-) diff --git a/packages/ui/src/parsers/postman.spec.ts b/packages/ui/src/parsers/postman.spec.ts index 22b581d8..198c300c 100644 --- a/packages/ui/src/parsers/postman.spec.ts +++ b/packages/ui/src/parsers/postman.spec.ts @@ -7,9 +7,11 @@ import { convertPostmanExportToRestfoxCollection } from './postman' import { addSortOrderToTree, flattenTree } from '@/helpers' test('importPostmanV2.0', async() => { - const currentFolder = path.dirname(new URL(import.meta.url).pathname) + const currentFolder = process.cwd() - const testDataFolder = path.join(currentFolder, '..', '..', 'test-data', 'postman-import-v2') + const testDataFolder = path.resolve(path.join(currentFolder,'test-data', 'postman-import-v2')) + + console.log('testDataFolder', testDataFolder) const inputFile = await readFile(path.join(testDataFolder, 'Argos.API.postman_collection.v2.0.json'), 'utf-8') const input = JSON.parse(inputFile) @@ -49,9 +51,9 @@ test('importPostmanV2.0', async() => { }) test('importPostmanV2.1', async() => { - const currentFolder = path.dirname(new URL(import.meta.url).pathname) + const currentFolder = process.cwd() - const testDataFolder = path.join(currentFolder, '..', '..', 'test-data', 'postman-import-v2') + const testDataFolder = path.join(currentFolder, 'test-data', 'postman-import-v2') const inputFile = await readFile(path.join(testDataFolder, 'Argos.API.postman_collection.v2.1.json'), 'utf-8') const input = JSON.parse(inputFile) diff --git a/packages/ui/src/parsers/postman.ts b/packages/ui/src/parsers/postman.ts index b68c8a06..d4dee8f9 100644 --- a/packages/ui/src/parsers/postman.ts +++ b/packages/ui/src/parsers/postman.ts @@ -211,6 +211,18 @@ function handlePostmanV2CollectionItem(postmanCollectionItem: any, parentId: str }) }) + const pathParameters: RequestParam[] = [] + + const pathParams = 'url' in request.request && typeof request.request.url !== 'string' && 'variable' in request.request.url ? request.request.url.variable : [] + pathParams.forEach((pathParam: any) => { + pathParameters.push({ + name: pathParam.key, + value: pathParam.value, + description: pathParam.description, + disabled: pathParam.disabled + }) + }) + let url = '' if('url' in request.request) { @@ -258,6 +270,7 @@ function handlePostmanV2CollectionItem(postmanCollectionItem: any, parentId: str body, headers, parameters, + pathParameters: pathParameters.length > 0 ? pathParameters : undefined, authentication, description: 'description' in request.request ? request.request.description : undefined, parentId, diff --git a/packages/ui/test-data/postman-import-v2/Restfox_2024-09-06.json b/packages/ui/test-data/postman-import-v2/Restfox_2024-09-06.json index 290b7152..00f9c7df 100644 --- a/packages/ui/test-data/postman-import-v2/Restfox_2024-09-06.json +++ b/packages/ui/test-data/postman-import-v2/Restfox_2024-09-06.json @@ -38,6 +38,13 @@ } ], "parameters": [], + "pathParameters": [ + { + "name": "buildId", + "value": "", + "description": "(Required) A unique identifier for the build" + } + ], "authentication": { "type": "No Auth" }, diff --git a/packages/ui/test-data/postman-import-v2/test-snapshot.json b/packages/ui/test-data/postman-import-v2/test-snapshot.json index edea3030..fb96f8bd 100644 --- a/packages/ui/test-data/postman-import-v2/test-snapshot.json +++ b/packages/ui/test-data/postman-import-v2/test-snapshot.json @@ -186,6 +186,13 @@ } ], "parameters": [], + "pathParameters": [ + { + "name": "buildId", + "value": "", + "description": "(Required) A unique identifier for the build" + } + ], "authentication": { "type": "No Auth" },