Files
fastapi-openapi-to-postman/test/unit/schemaUtilsCommon.test.js
2022-02-28 09:54:38 -06:00

167 lines
5.7 KiB
JavaScript

const schemaUtilsCommon = require('../../lib/common/schemaUtilsCommon');
const { formatDataPath, formatSchemaPathToConverToDataPath } = require('../../lib/common/schemaUtilsCommon'),
expect = require('chai').expect;
describe('formatData method', function() {
it('Should format a simple ajv instancePath to old ajv dataPath', function() {
const instancePath = '/test',
expectedDataPath = '.test',
formattedDataPath = formatDataPath(instancePath);
expect(formattedDataPath).to.be.equal(expectedDataPath);
});
it('Should format a ajv instancePath that represents an element in an array to old ajv dataPath', function() {
const instancePath = '/test/3',
expectedDataPath = '.test[3]',
formattedDataPath = formatDataPath(instancePath);
expect(formattedDataPath).to.be.equal(expectedDataPath);
});
it('Should return the same string when input is a data path ".id" ', function() {
const inputAlreadyDataPath = '.id',
expectedDataPath = '.id',
formattedDataPath = formatDataPath(inputAlreadyDataPath);
expect(formattedDataPath).to.be.equal(expectedDataPath);
});
it('Should return the same string when input is a data path ".test[3]" ', function() {
const inputAlreadyDataPath = '.test[3]',
expectedDataPath = '.test[3]',
formattedDataPath = formatDataPath(inputAlreadyDataPath);
expect(formattedDataPath).to.be.equal(expectedDataPath);
});
it('Should return "properties.automatic.items.properties.configs.items"' +
' when input is "#/properties/automatic/items/properties/configs/items/type"', function() {
const input = 'properties/automatic/items/properties/configs/items',
expectedDataPath = 'properties.automatic.items.properties.configs.items',
formattedDataPath = formatDataPath(input);
expect(formattedDataPath).to.be.equal(expectedDataPath);
});
});
describe('handleExclusiveMaximum method', function() {
it('Should the maximum in a schema that uses exclusiveMaximum', function() {
const defaultMaximum = 1000000,
schema = {
type: [
'integer'
],
exclusiveMaximum: 100
},
newMaximum = schemaUtilsCommon.handleExclusiveMaximum(schema, defaultMaximum),
expectedMaximum = 99;
expect(newMaximum).to.be.equal(expectedMaximum);
});
it('Should the maximum in a schema that uses exclusiveMaximum and multipleOf', function() {
const defaultMaximum = 1000000,
schema = {
type: [
'integer'
],
exclusiveMaximum: 100,
multipleOf: 10
},
newMaximum = schemaUtilsCommon.handleExclusiveMaximum(schema, defaultMaximum),
expectedMaximum = 90;
expect(newMaximum).to.be.equal(expectedMaximum);
});
it('Should the maximum in a schema that uses exclusiveMaximum in old way', function() {
const defaultMaximum = 1000000,
schema = {
type: [
'integer'
],
exclusiveMaximum: true,
maximum: 100
},
newMaximum = schemaUtilsCommon.handleExclusiveMaximum(schema, defaultMaximum),
expectedMaximum = 99;
expect(newMaximum).to.be.equal(expectedMaximum);
});
it('Should the maximum in a schema that uses exclusiveMaximum and multipleOf in old way', function() {
const defaultMaximum = 1000000,
schema = {
type: [
'integer'
],
exclusiveMaximum: true,
maximum: 100,
multipleOf: 10
},
newMaximum = schemaUtilsCommon.handleExclusiveMaximum(schema, defaultMaximum),
expectedMaximum = 90;
expect(newMaximum).to.be.equal(expectedMaximum);
});
});
describe('handleExclusiveMinimum method', function() {
it('Should the maximum in a schema that uses exclusiveMinimum', function() {
const defaultMinimum = 10,
schema = {
type: [
'integer'
],
exclusiveMinimum: 100
},
newMinimum = schemaUtilsCommon.handleExclusiveMinimum(schema, defaultMinimum),
expectedMinimum = 101;
expect(newMinimum).to.be.equal(expectedMinimum);
});
it('Should the minimum in a schema that uses exclusiveMinimum and multipleOf', function() {
const defaultMinimum = 10,
schema = {
type: [
'integer'
],
exclusiveMinimum: 100,
multipleOf: 10
},
newMinimum = schemaUtilsCommon.handleExclusiveMinimum(schema, defaultMinimum),
expectedMinimum = 110;
expect(newMinimum).to.be.equal(expectedMinimum);
});
it('Should the minimum in a schema that uses exclusiveMinimum in old way', function() {
const defaultMinimum = 10,
schema = {
type: [
'integer'
],
exclusiveMinimum: true,
minimum: 100
},
newMinimum = schemaUtilsCommon.handleExclusiveMinimum(schema, defaultMinimum),
expectedMinimum = 101;
expect(newMinimum).to.be.equal(expectedMinimum);
});
it('Should the minimum in a schema that uses exclusiveMinimum and multipleOf in old way', function() {
const defaultMinimum = 10,
schema = {
type: [
'integer'
],
exclusiveMinimum: true,
minimum: 100,
multipleOf: 10
},
newMinimum = schemaUtilsCommon.handleExclusiveMinimum(schema, defaultMinimum),
expectedMinimum = 110;
expect(newMinimum).to.be.equal(expectedMinimum);
});
});
describe('formatSchemaPathToConverToDataPath method', function () {
it('should return properties/automatic/items/properties/configs/items ' +
'when entry is #/properties/automatic/items/properties/configs/items/type', function () {
const result = formatSchemaPathToConverToDataPath('#/properties/automatic/items/properties/configs/items/type');
expect(result).to.equal('properties/automatic/items/properties/configs/items');
});
});