Socket
Socket
Sign inDemoInstall

swagger-tools

Package Overview
Dependencies
Maintainers
1
Versions
78
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

swagger-tools - npm Package Compare versions

Comparing version 0.1.4 to 0.1.5

test/v1_2-invalid-model-inheritance.json

24

index.js

@@ -377,2 +377,26 @@ /*

}
if (model.discriminator && _.isUndefined(model.subTypes)) {
errors.push({
code: 'INVALID_MODEL_DISCRIMINATOR',
message: 'Model cannot have discriminator without subTypes: ' + model.discriminator,
data: model.discriminator,
path: '$.models[\'' + name + '\'].discriminator'
});
}
if (model.required && _.isArray(model.required)) {
var props = model.properties || {};
_.each(model.required, function (propName, index) {
if (_.isUndefined(props[propName])) {
errors.push({
code: 'MISSING_REQUIRED_MODEL_PROPERTY',
message: 'Model requires property but it is not defined: ' + propName,
data: propName,
path: '$.models[\'' + name + '\'].required[' + index + ']'
});
}
});
}
});

@@ -379,0 +403,0 @@ }

2

package.json
{
"name": "swagger-tools",
"version": "0.1.4",
"version": "0.1.5",
"description": "Various tools for using and integrating with Swagger.",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -42,4 +42,5 @@ /* global describe, it */

var allSampleFiles = {};
var invalidModelMiscJson = require('./v1_2-invalid-model-misc.json');
var invalidModelRefsJson = require('./v1_2-invalid-model-refs.json');
var invalidModelsJson = require('./v1_2-invalid-models.json');
var invalidModelInheritanceJson = require('./v1_2-invalid-model-inheritance.json');

@@ -225,3 +226,3 @@ // Load the sample files from disk

spec.validate(invalidModelsJson).errors.forEach(function (error) {
spec.validate(invalidModelInheritanceJson).errors.forEach(function (error) {
if (error.code === 'DUPLICATE_MODEL_DEFINITION') {

@@ -245,3 +246,3 @@ errors.push(error);

spec.validate(invalidModelsJson).errors.forEach(function (error) {
spec.validate(invalidModelInheritanceJson).errors.forEach(function (error) {
if (error.code === 'CYCLICAL_MODEL_INHERITANCE') {

@@ -271,3 +272,3 @@ errors.push(error);

spec.validate(invalidModelsJson).errors.forEach(function (error) {
spec.validate(invalidModelInheritanceJson).errors.forEach(function (error) {
if (error.code === 'MULTIPLE_MODEL_INHERITANCE') {

@@ -282,3 +283,3 @@ errors.push(error);

message: 'Child model is sub type of multiple models: A && E',
data: invalidModelsJson.models.B,
data: invalidModelInheritanceJson.models.B,
path: '$.models[\'B\']'

@@ -292,3 +293,3 @@ }

spec.validate(invalidModelsJson).errors.forEach(function (error) {
spec.validate(invalidModelInheritanceJson).errors.forEach(function (error) {
if (error.code === 'CHILD_MODEL_REDECLARES_PROPERTY') {

@@ -303,3 +304,3 @@ errors.push(error);

message: 'Child model declares property already declared by ancestor: fId',
data: invalidModelsJson.models.G.properties.fId,
data: invalidModelInheritanceJson.models.G.properties.fId,
path: '$.models[\'G\'].properties[\'fId\']'

@@ -313,3 +314,3 @@ }

spec.validate(invalidModelsJson).warnings.forEach(function (warning) {
spec.validate(invalidModelInheritanceJson).warnings.forEach(function (warning) {
if (warning.code === 'DUPLICATE_MODEL_SUBTYPE_DEFINITION') {

@@ -329,3 +330,41 @@ warnings.push(warning);

});
it('should return errors for model with invalid discriminator apiDeclaration files', function () {
var errors = [];
spec.validate(invalidModelMiscJson).errors.forEach(function (error) {
if (error.code === 'INVALID_MODEL_DISCRIMINATOR') {
errors.push(error);
}
});
assert.deepEqual(errors, [
{
'code': 'INVALID_MODEL_DISCRIMINATOR',
'message': 'Model cannot have discriminator without subTypes: aId',
'data': 'aId',
'path': '$.models[\'A\'].discriminator'
}
]);
});
it('should return errors for model with missing required property apiDeclaration files', function () {
var errors = [];
spec.validate(invalidModelMiscJson).errors.forEach(function (error) {
if (error.code === 'MISSING_REQUIRED_MODEL_PROPERTY') {
errors.push(error);
}
});
assert.deepEqual(errors, [
{
'code': 'MISSING_REQUIRED_MODEL_PROPERTY',
'message': 'Model requires property but it is not defined: bId',
'data': 'bId',
'path': '$.models[\'A\'].required[1]'
}
]);
});
});
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc