Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

strings are allowed as numbers #47

Open
davepacheco opened this issue Mar 18, 2014 · 0 comments
Open

strings are allowed as numbers #47

davepacheco opened this issue Mar 18, 2014 · 0 comments

Comments

@davepacheco
Copy link

In places where a "number" is required, a "string" value is accepted. Moreover, numeric constraints like "minimum" are correctly applied to numeric values, but are ignored for string values. Here's a test program:

/*
 * test case for json-schema validation issue with strings as integers
 */
var assert = require('assert');
var jsonschema = require('json-schema');

var schema = {
    'type': 'integer',
    'minimum': 0
};

console.log('validate -1 as a positive integer (expect fail, got fail)');
console.log(jsonschema.validate(-1, schema));

console.log('validate 1 as a positive integer (expect okay, got okay)');
console.log(jsonschema.validate(1, schema));

console.log('FAIL: validate "-1" as a positive integer (expect fail, got okay)');
console.log(jsonschema.validate('-1', schema));

console.log('FAIL: validate "1" as a positive integer (expect fail, got okay)');
console.log(jsonschema.validate('1', schema));

and here's the output for my system:

dap@sharptooth jst $ uname -a
Darwin sharptooth.local 12.5.0 Darwin Kernel Version 12.5.0: Sun Sep 29 13:33:47 PDT 2013; root:xnu-2050.48.12~1/RELEASE_X86_64 x86_64
dap@sharptooth jst $ node -v
v0.10.18
dap@sharptooth jst $ npm ls 
/Users/dap/Desktop/jst
└── json-schema@0.2.2

dap@sharptooth jst $ node issue-int.js 
validate -1 as a positive integer (expect fail, got fail)
{ valid: false,
  errors: [ { property: '', message: 'must have a minimum value of 0' } ] }
validate 1 as a positive integer (expect okay, got okay)
{ valid: true, errors: [] }
FAIL: validate "-1" as a positive integer (expect fail, got okay)
{ valid: true, errors: [] }
FAIL: validate "1" as a positive integer (expect fail, got okay)
{ valid: true, errors: [] }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant