diff --git a/packages/api-explorer/package-lock.json b/packages/api-explorer/package-lock.json index f2daf72c7..26f18c313 100644 --- a/packages/api-explorer/package-lock.json +++ b/packages/api-explorer/package-lock.json @@ -1395,9 +1395,9 @@ "integrity": "sha512-VSKMnyuCYKjlnVBF4gS08iav+g1iNeYp5hz5F7ldO9UXbJcYeGF43xNidNncootxPyRY0NQZeRYIFW/QsChK/Q==" }, "@readme/oas-tooling": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@readme/oas-tooling/-/oas-tooling-3.5.2.tgz", - "integrity": "sha512-HoW1QYzQ/CcprbjEfytNS+vNEEgmxz0C4+wYMESm0WeWHgeaaT9/2quvVTKKbIHVmiwUEzFSNc4g30cDurFj5g==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@readme/oas-tooling/-/oas-tooling-3.5.4.tgz", + "integrity": "sha512-hxxYN5j4BCAutVS97JOxEkcHTcHqjXDXTB54nm6j7Pz1z5EkRhlIWsoiO/o6sqz7gcFXOXuyf44P/F8DprceLQ==", "requires": { "jsonpointer": "^4.0.1", "path-to-regexp": "^6.1.0" diff --git a/packages/api-explorer/package.json b/packages/api-explorer/package.json index c0c68d525..715766fb9 100644 --- a/packages/api-explorer/package.json +++ b/packages/api-explorer/package.json @@ -10,7 +10,7 @@ "@readme/oas-extensions": "^6.13.0", "@readme/oas-to-har": "^6.15.1", "@readme/oas-to-snippet": "^6.15.1", - "@readme/oas-tooling": "^3.5.2", + "@readme/oas-tooling": "^3.5.4", "@readme/react-jsonschema-form": "^1.1.5", "@readme/syntax-highlighter": "^6.15.1", "@readme/variable": "^6.13.0", diff --git a/packages/oas-to-har/__tests__/index.test.js b/packages/oas-to-har/__tests__/index.test.js index d181f4beb..21e9a03ee 100644 --- a/packages/oas-to-har/__tests__/index.test.js +++ b/packages/oas-to-har/__tests__/index.test.js @@ -860,6 +860,69 @@ describe('requestBody', () => { ).toBeUndefined(); }); + describe('multipart/form-data', () => { + it('should handle multipart/form-data request bodies', () => { + const har = oasToHar( + new Oas({ + components: { + requestBodies: { + payload: { + required: true, + content: { + 'multipart/form-data': { + schema: { + type: 'object', + properties: { + 'Document file': { + type: 'string', + format: 'binary', + }, + }, + }, + }, + }, + }, + }, + securitySchemes: { + bearerAuth: { + type: 'apiKey', + name: 'Authorization', + in: 'header', + }, + }, + }, + }), + { + path: '/multipart', + method: 'post', + security: [ + { + bearerAuth: [], + }, + ], + requestBody: { + $ref: '#/components/requestBodies/payload', + }, + responses: { + default: { + description: 'OK', + }, + }, + }, + { + body: { + 'Document file': '.....', + }, + } + ); + + expect(har.log.entries[0].request.headers).toStrictEqual([ + { name: 'Content-Type', value: 'multipart/form-data' }, + ]); + expect(har.log.entries[0].request.postData.mimeType).toBe('multipart/form-data'); + }); + }); + describe('`json` type', () => { it('should work for refs that require a lookup', () => { expect( diff --git a/packages/oas-to-har/package-lock.json b/packages/oas-to-har/package-lock.json index 9b6302e0f..dd6e3d3f1 100644 --- a/packages/oas-to-har/package-lock.json +++ b/packages/oas-to-har/package-lock.json @@ -1023,9 +1023,9 @@ "integrity": "sha512-VSKMnyuCYKjlnVBF4gS08iav+g1iNeYp5hz5F7ldO9UXbJcYeGF43xNidNncootxPyRY0NQZeRYIFW/QsChK/Q==" }, "@readme/oas-tooling": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@readme/oas-tooling/-/oas-tooling-3.5.2.tgz", - "integrity": "sha512-HoW1QYzQ/CcprbjEfytNS+vNEEgmxz0C4+wYMESm0WeWHgeaaT9/2quvVTKKbIHVmiwUEzFSNc4g30cDurFj5g==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@readme/oas-tooling/-/oas-tooling-3.5.4.tgz", + "integrity": "sha512-hxxYN5j4BCAutVS97JOxEkcHTcHqjXDXTB54nm6j7Pz1z5EkRhlIWsoiO/o6sqz7gcFXOXuyf44P/F8DprceLQ==", "requires": { "jsonpointer": "^4.0.1", "path-to-regexp": "^6.1.0" diff --git a/packages/oas-to-har/package.json b/packages/oas-to-har/package.json index d8b923d93..9563f807b 100644 --- a/packages/oas-to-har/package.json +++ b/packages/oas-to-har/package.json @@ -5,7 +5,7 @@ "main": "src/index.js", "dependencies": { "@readme/oas-extensions": "^6.13.0", - "@readme/oas-tooling": "^3.5.2" + "@readme/oas-tooling": "^3.5.4" }, "scripts": { "inspect": "jsinspect", diff --git a/packages/oas-to-snippet/package-lock.json b/packages/oas-to-snippet/package-lock.json index 50a5204e9..86a5b5933 100644 --- a/packages/oas-to-snippet/package-lock.json +++ b/packages/oas-to-snippet/package-lock.json @@ -991,9 +991,9 @@ } }, "@readme/oas-tooling": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@readme/oas-tooling/-/oas-tooling-3.5.2.tgz", - "integrity": "sha512-HoW1QYzQ/CcprbjEfytNS+vNEEgmxz0C4+wYMESm0WeWHgeaaT9/2quvVTKKbIHVmiwUEzFSNc4g30cDurFj5g==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@readme/oas-tooling/-/oas-tooling-3.5.4.tgz", + "integrity": "sha512-hxxYN5j4BCAutVS97JOxEkcHTcHqjXDXTB54nm6j7Pz1z5EkRhlIWsoiO/o6sqz7gcFXOXuyf44P/F8DprceLQ==", "requires": { "jsonpointer": "^4.0.1", "path-to-regexp": "^6.1.0" diff --git a/packages/oas-to-snippet/package.json b/packages/oas-to-snippet/package.json index 093d9c64b..59b4365ed 100644 --- a/packages/oas-to-snippet/package.json +++ b/packages/oas-to-snippet/package.json @@ -33,7 +33,7 @@ "devDependencies": { "@readme/eslint-config": "^3.2.0", "@readme/oas-examples": "^3.4.0", - "@readme/oas-tooling": "^3.5.2", + "@readme/oas-tooling": "^3.5.4", "eslint": "^7.0.0", "jest": "^26.0.1", "prettier": "^2.0.1"