isvalid 3.2.3 → 3.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/formalize.js +2 -2
- package/package.json +1 -1
- package/test/validate.js +63 -61
package/lib/formalize.js
CHANGED
|
@@ -187,7 +187,7 @@ const formalizeAny = (schema, options = {}) => {
|
|
|
187
187
|
|
|
188
188
|
if (typeof (options.transform || {}).pre === 'function') {
|
|
189
189
|
const transformed = options.transform.pre(key, formalizedSchema[key], { schema: formalizedSchema });
|
|
190
|
-
formalizedSchema[key] = typeof transformed !== 'undefined' ? transformed : formalizedSchema[key];
|
|
190
|
+
test = formalizedSchema[key] = typeof transformed !== 'undefined' ? transformed : formalizedSchema[key];
|
|
191
191
|
}
|
|
192
192
|
|
|
193
193
|
// Ensure validator is of correct type.
|
|
@@ -208,7 +208,7 @@ const formalizeAny = (schema, options = {}) => {
|
|
|
208
208
|
|
|
209
209
|
if (typeof (options.transform || {}).post === 'function') {
|
|
210
210
|
const transformed = options.transform.post(key, formalizedSchema[key], { schema: formalizedSchema }) || formalizedSchema[key];
|
|
211
|
-
formalizedSchema[key] = typeof transformed !== 'undefined' ? transformed : formalizedSchema[key];
|
|
211
|
+
test = formalizedSchema[key] = typeof transformed !== 'undefined' ? transformed : formalizedSchema[key];
|
|
212
212
|
}
|
|
213
213
|
|
|
214
214
|
}
|
package/package.json
CHANGED
package/test/validate.js
CHANGED
|
@@ -619,49 +619,49 @@ describe('validate', function() {
|
|
|
619
619
|
.and.to.have.property('validator', 'unique');
|
|
620
620
|
});
|
|
621
621
|
});
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
}
|
|
633
|
-
});
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
622
|
+
});
|
|
623
|
+
describe('autowrap', function() {
|
|
624
|
+
it('should come back with non-array wrapped in array', () => {
|
|
625
|
+
return expect(isvalid({
|
|
626
|
+
test: true
|
|
627
|
+
}, {
|
|
628
|
+
type: Array,
|
|
629
|
+
autowrap: true,
|
|
630
|
+
schema: {
|
|
631
|
+
test: Boolean
|
|
632
|
+
}
|
|
633
|
+
})).to.eventually.be.an('array').and.to.have.property(0).and.to.have.property('test', true);
|
|
634
|
+
});
|
|
635
|
+
it('should come back with type error if autowrap and not matching sub-schema.', () => {
|
|
636
|
+
return expect(isvalid({
|
|
637
|
+
test: 'Not a boolean'
|
|
638
|
+
}, {
|
|
639
|
+
type: Array,
|
|
640
|
+
autowrap: true,
|
|
641
|
+
schema: {
|
|
642
|
+
test: Boolean
|
|
643
|
+
}}))
|
|
644
|
+
.to.eventually.be.rejectedWith('Is not of type boolean.')
|
|
645
|
+
.and.to.be.instanceOf(ValidationError)
|
|
646
|
+
.and.have.property('validator', 'type');
|
|
647
|
+
});
|
|
648
|
+
it('should come back with type error if no autowrap and matching sub-schema.', () => {
|
|
649
|
+
return expect(isvalid({
|
|
650
|
+
test: true
|
|
651
|
+
}, [{
|
|
652
|
+
test: Boolean}]))
|
|
653
|
+
.to.eventually.be.rejectedWith('Is not of type array.')
|
|
654
|
+
.and.to.be.instanceOf(ValidationError)
|
|
655
|
+
.and.have.property('validator', 'type');
|
|
656
|
+
});
|
|
657
|
+
it('should prioritize concrete over defaults.', () => {
|
|
658
|
+
return expect(isvalid(true, {
|
|
659
|
+
type: Array,
|
|
660
|
+
autowrap: false
|
|
661
|
+
}, { defaults: { autowrap: true }}))
|
|
662
|
+
.to.eventually.be.rejectedWith('Is not of type array.')
|
|
663
|
+
.and.to.be.instanceOf(ValidationError)
|
|
664
|
+
.and.have.property('validator', 'type');
|
|
665
665
|
});
|
|
666
666
|
});
|
|
667
667
|
});
|
|
@@ -771,24 +771,6 @@ describe('validate', function() {
|
|
|
771
771
|
return expect(isvalid(123, Number))
|
|
772
772
|
.to.eventually.equal(123);
|
|
773
773
|
});
|
|
774
|
-
it('should throw error if non-integers are not allowed.', () => {
|
|
775
|
-
return expect(isvalid(2.2, { type: Number, float: 'deny' }))
|
|
776
|
-
.to.eventually.be.rejectedWith('Number must be an integer.')
|
|
777
|
-
.and.to.be.instanceOf(ValidationError)
|
|
778
|
-
.and.have.property('validator', 'float');
|
|
779
|
-
});
|
|
780
|
-
it ('should come back with non-integer values if they are allowed.', () => {
|
|
781
|
-
return expect(isvalid(2.2, { type: Number })).to.eventually.equal(2.2);
|
|
782
|
-
});
|
|
783
|
-
it ('should come back with number rounded if `float` is set to `round`.', () => {
|
|
784
|
-
return expect(isvalid(2.5, { type: Number, float: 'round' })).to.eventually.equal(3);
|
|
785
|
-
});
|
|
786
|
-
it ('should come back with number ceiled if `float` is set to `ceil`.', () => {
|
|
787
|
-
return expect(isvalid(2.2, { type: Number, float: 'ceil' })).to.eventually.equal(3);
|
|
788
|
-
});
|
|
789
|
-
it ('should come back with number floored if `float` is set to `floor`.', () => {
|
|
790
|
-
return expect(isvalid(2.8, { type: Number, float: 'floor' })).to.eventually.equal(2);
|
|
791
|
-
});
|
|
792
774
|
describe('range', function() {
|
|
793
775
|
it('should come back with error if input is not within range.', () => {
|
|
794
776
|
return expect(isvalid(1, { type: Number, range: '2-4' }))
|
|
@@ -814,6 +796,26 @@ describe('validate', function() {
|
|
|
814
796
|
});
|
|
815
797
|
});
|
|
816
798
|
});
|
|
799
|
+
describe('float', function() {
|
|
800
|
+
it('should throw error if non-integers are not allowed.', () => {
|
|
801
|
+
return expect(isvalid(2.2, { type: Number, float: 'deny' }))
|
|
802
|
+
.to.eventually.be.rejectedWith('Number must be an integer.')
|
|
803
|
+
.and.to.be.instanceOf(ValidationError)
|
|
804
|
+
.and.have.property('validator', 'float');
|
|
805
|
+
});
|
|
806
|
+
it ('should come back with non-integer values if they are allowed.', () => {
|
|
807
|
+
return expect(isvalid(2.2, { type: Number })).to.eventually.equal(2.2);
|
|
808
|
+
});
|
|
809
|
+
it ('should come back with number rounded if `float` is set to `round`.', () => {
|
|
810
|
+
return expect(isvalid(2.5, { type: Number, float: 'round' })).to.eventually.equal(3);
|
|
811
|
+
});
|
|
812
|
+
it ('should come back with number ceiled if `float` is set to `ceil`.', () => {
|
|
813
|
+
return expect(isvalid(2.2, { type: Number, float: 'ceil' })).to.eventually.equal(3);
|
|
814
|
+
});
|
|
815
|
+
it ('should come back with number floored if `float` is set to `floor`.', () => {
|
|
816
|
+
return expect(isvalid(2.8, { type: Number, float: 'floor' })).to.eventually.equal(2);
|
|
817
|
+
});
|
|
818
|
+
});
|
|
817
819
|
});
|
|
818
820
|
describe('date validator', function() {
|
|
819
821
|
commonTests.all(Date, new Date(), 123);
|