mirror of
https://github.com/postmanlabs/openapi-to-postman.git
synced 2022-11-29 22:05:00 +03:00
Add test and code improvements
Add test and code improvements
This commit is contained in:
committed by
Erik Mendoza
parent
ac9df06e84
commit
d226580b52
@@ -1361,14 +1361,25 @@ module.exports = {
|
||||
return example;
|
||||
},
|
||||
|
||||
useExampleValueAsValue(schema, example, components) {
|
||||
let isCandidate = true,
|
||||
schemaProperties = [],
|
||||
/**
|
||||
* Identifies if the example.value should be used as value of the body
|
||||
* This is needed because there are cases that the example object has a property
|
||||
* called value like: example = { id: 1, value: "someValue" }
|
||||
* In this case the body value should be the whole example object and not the property called value
|
||||
* The property value belongs to the example object not the example OAS spec property
|
||||
* @param {*} schema bodyObject (media type) schema to use
|
||||
* @param {*} example - Exampel took from the bodyObject
|
||||
* @param {object} components - components defined in the OAS spec.
|
||||
* @returns {boolean} Wheter to use the property value of the example as the value of the
|
||||
* body data
|
||||
*/
|
||||
useExampleValuePropAsValue(schema, example, components) {
|
||||
let schemaProperties = [],
|
||||
schemaObject,
|
||||
schemaDataPath = '',
|
||||
exampleProperties = [];
|
||||
if (!schema) {
|
||||
return isCandidate;
|
||||
return false;
|
||||
}
|
||||
if (schema.$ref) {
|
||||
schemaDataPath = formatDataPath(formatSchemaPathFromAJVErrorToConvertToDataPath(schema.$ref));
|
||||
@@ -1434,7 +1445,7 @@ module.exports = {
|
||||
bodyData = bodyObj.example;
|
||||
// return example value if present else example is returned
|
||||
if (bodyData.hasOwnProperty('value') &&
|
||||
this.useExampleValueAsValue(bodyObj.schema, bodyObj.example, components)) {
|
||||
this.useExampleValuePropAsValue(bodyObj.schema, bodyObj.example, components)) {
|
||||
bodyData = bodyData.value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +46,47 @@ paths:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
/pet:
|
||||
get:
|
||||
summary: 'Sample endpoint: Returns details about a particular pet'
|
||||
operationId: listPet
|
||||
tags:
|
||||
- pet
|
||||
parameters:
|
||||
- name: id
|
||||
in: query
|
||||
description: ID of the pet
|
||||
required: true
|
||||
schema:
|
||||
type: integer
|
||||
format: int32
|
||||
responses:
|
||||
'200':
|
||||
description: 'Sample response: Details about a pet by ID'
|
||||
headers:
|
||||
x-next:
|
||||
description: A link to the next page of responses
|
||||
schema:
|
||||
type: string
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
format: int64
|
||||
value:
|
||||
type: string
|
||||
example:
|
||||
id: "5789-6378-6372-6372"
|
||||
value: QA
|
||||
default:
|
||||
description: Unexpected error
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
components:
|
||||
schemas:
|
||||
User:
|
||||
|
||||
@@ -48,7 +48,8 @@ describe('CONVERT FUNCTION TESTS ', function() {
|
||||
rootUrlServerWithVariables = path.join(__dirname, VALID_OPENAPI_PATH + '/root_url_server_with_variables.json'),
|
||||
parameterExamples = path.join(__dirname, VALID_OPENAPI_PATH + '/parameteres_with_examples.yaml'),
|
||||
issue10229 = path.join(__dirname, VALID_OPENAPI_PATH, '/issue#10229.json'),
|
||||
deepObjectLengthProperty = path.join(__dirname, VALID_OPENAPI_PATH, '/deepObjectLengthProperty.yaml');
|
||||
deepObjectLengthProperty = path.join(__dirname, VALID_OPENAPI_PATH, '/deepObjectLengthProperty.yaml'),
|
||||
valuePropInExample = path.join(__dirname, VALID_OPENAPI_PATH, '/valuePropInExample.yaml');
|
||||
|
||||
|
||||
it('Should add collection level auth with type as `bearer`' +
|
||||
@@ -1111,6 +1112,21 @@ describe('CONVERT FUNCTION TESTS ', function() {
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('[Github #10752]: Should convert value property in example' +
|
||||
valuePropInExample, function(done) {
|
||||
var openapi = fs.readFileSync(valuePropInExample, 'utf8');
|
||||
Converter.convert({ type: 'string', data: openapi },
|
||||
{ schemaFaker: true, requestParametersResolution: 'Example' }, (err, conversionResult) => {
|
||||
expect(err).to.be.null;
|
||||
expect(conversionResult.result).to.equal(true);
|
||||
expect(conversionResult.output[0].data.item[0].response[0]
|
||||
.body).to.include('"value": "QA"');
|
||||
expect(conversionResult.output[0].data.item[1].response[0]
|
||||
.body).to.include('"value": "QA"');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
describe('Converting swagger 2.0 files', function() {
|
||||
it('should convert path paramters to postman-compatible paramters', function (done) {
|
||||
|
||||
Reference in New Issue
Block a user