ac-sanitizer 3.10.2 → 3.10.5

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/CHANGELOG.md CHANGED
@@ -1,3 +1,56 @@
1
+ <a name="3.10.5"></a>
2
+
3
+ ## [3.10.5](https://github.com/mmpro/ac-sanitizer/compare/v3.10.4..v3.10.5) (2022-06-25 09:02:28)
4
+
5
+
6
+ ### Bug Fix
7
+
8
+ * **App:** Add strict mode to objects | MP | [e9cbaff3f1c8214e20a38472da0a02494d81a2d5](https://github.com/mmpro/ac-sanitizer/commit/e9cbaff3f1c8214e20a38472da0a02494d81a2d5)
9
+ In strict mode payload with non-defined properties will cause an error.
10
+ Related issues: [/issues#undefined](https://github.com//issues/undefined)
11
+ ### Chores
12
+
13
+ * **App:** Updated packages | MP | [e727e41a06453120d675d10959ae5792262278ae](https://github.com/mmpro/ac-sanitizer/commit/e727e41a06453120d675d10959ae5792262278ae)
14
+ Updated packages
15
+ Related issues: [undefined/undefined#master](undefined/browse/master)
16
+ <a name="3.10.4"></a>
17
+
18
+ ## [3.10.4](https://github.com/mmpro/ac-sanitizer/compare/v3.10.3..v3.10.4) (2022-06-08 18:30:35)
19
+
20
+
21
+ ### Bug Fix
22
+
23
+ * **App:** Move from jest to chai/expect | MP | [14369812c3e5a43f32f5490b9d9503bca5e9d4c9](https://github.com/mmpro/ac-sanitizer/commit/14369812c3e5a43f32f5490b9d9503bca5e9d4c9)
24
+ Move from jest to chai/expect
25
+ Related issues: [undefined/undefined#master](undefined/browse/master)
26
+ * **App:** Package updates | MP | [57337f5328b0ae478e477fc72bc26b89ddc28662](https://github.com/mmpro/ac-sanitizer/commit/57337f5328b0ae478e477fc72bc26b89ddc28662)
27
+ Package updates
28
+ Related issues: [undefined/undefined#master](undefined/browse/master)
29
+ ### Chores
30
+
31
+ * **App:** Updated packages | MP | [4cf217a833b79b87bb0b3380a49e48de11309192](https://github.com/mmpro/ac-sanitizer/commit/4cf217a833b79b87bb0b3380a49e48de11309192)
32
+ Updated packages
33
+ Related issues: [undefined/undefined#master](undefined/browse/master)
34
+ ### Chores
35
+
36
+ * **App:** Updated gitignore | MP | [a760b76abe278962e29d982a3515bccd23d88310](https://github.com/mmpro/ac-sanitizer/commit/a760b76abe278962e29d982a3515bccd23d88310)
37
+ Updated gitignore
38
+ Related issues: [undefined/undefined#master](undefined/browse/master)
39
+ <a name="3.10.3"></a>
40
+
41
+ ## [3.10.3](https://github.com/mmpro/ac-sanitizer/compare/v3.10.2..v3.10.3) (2022-05-15 15:04:15)
42
+
43
+
44
+ ### Bug Fix
45
+
46
+ * **App:** Allow array of objects for enum/allowed values | MP | [b8ed58e8ece9e6b11efa25b3f65ebaa77d690dc2](https://github.com/mmpro/ac-sanitizer/commit/b8ed58e8ece9e6b11efa25b3f65ebaa77d690dc2)
47
+ Allow array of objects for enum/allowed values
48
+ Related issues: [/issues#undefined](https://github.com//issues/undefined)
49
+ ### Chores
50
+
51
+ * **App:** Updated packages | MP | [1912835f9d881df59806c19275621d83feeb55ac](https://github.com/mmpro/ac-sanitizer/commit/1912835f9d881df59806c19275621d83feeb55ac)
52
+ Updated packages
53
+ Related issues: [/issues#undefined](https://github.com//issues/undefined)
1
54
  <a name="3.10.2"></a>
2
55
 
3
56
  ## [3.10.2](https://github.com/mmpro/ac-sanitizer/compare/v3.10.1..v3.10.2) (2022-04-28 11:21:08)
package/README.md CHANGED
@@ -52,6 +52,7 @@ adminLevel | [integer] | Optional adminLevel required for this field
52
52
  omitFields | [boolean] | If adminLevel is set and you do not have the proper adminLevel the sanitizer will just omit the field (and not return an error) if omitFields is true
53
53
  convert | [boolean|string] | Some types can be automatically converted (e.g. base64 to string)
54
54
  valueType | [string] | Use it to sanitize values of an array by defining the allowed type here
55
+ strict | [boolean] | For objects only - if true and payload contains a property not defined, an error will be returned.
55
56
 
56
57
  [^1]: The path must be set with the parent propery as root, e.g. the actual field is settings.video.width, in property video the condition is then just "width" not the full path.
57
58
 
@@ -130,10 +131,32 @@ let test = sanitizer.checkAndSanitizeValues(fieldsToCheck)
130
131
 
131
132
  ```
132
133
 
134
+ ## Objects
135
+ By default properties which are not defined will be ignored and removed from payload.
136
+
137
+ ### Objects with strict mode activate
138
+ In strict mode, only defined properties are allowed.
139
+ ```
140
+ let fieldsToCheck = {
141
+ params: {
142
+ settings: {
143
+ allowed: true,
144
+ notAllowed: true
145
+ }
146
+ },
147
+ fields: [
148
+ { field: 'settings', type: 'object', strict: true, properties: [
149
+ { field: 'allowed', type: 'boolean' }
150
+ ] }
151
+ ]
152
+ }
153
+ let test = sanitizer.checkAndSanitizeValues(fieldsToCheck)
154
+ // error: object_settings_containsInvalidProperties
155
+
156
+ ```
157
+
133
158
  ## Links
134
159
  - [Website](https://www.admiralcloud.com/)
135
- - [Twitter (@admiralcloud)](https://twitter.com/admiralcloud)
136
- - [Facebook](https://www.facebook.com/MediaAssetManagement/)
137
160
 
138
161
  ## License
139
- [MIT License](https://opensource.org/licenses/MIT) Copyright © 2009-present, AdmiralCloud, Mark Poepping
162
+ [MIT License](https://opensource.org/licenses/MIT) Copyright © 2009-present, AdmiralCloud AG, Mark Poepping
package/index.js CHANGED
@@ -283,6 +283,16 @@ const sanitizer = function() {
283
283
  error = schema.verify(value)
284
284
  }
285
285
 
286
+ // strict mode -> if true, then check payload against definition and return error if a non-defined property is in payload
287
+ if (_.get(field, 'strict')) {
288
+ let propsInPayload = _.keys(value)
289
+ let definedProps = _.map(_.get(field, 'properties'), 'field')
290
+ let diff = _.difference(propsInPayload, definedProps)
291
+ if (_.size(diff)) {
292
+ error = { message: fieldName + '_containsInvalidProperties', additionalInfo: { properties: diff } }
293
+ }
294
+ }
295
+
286
296
  // modern approach without verify function:
287
297
  // object can have properties with the same structure as the original field
288
298
  if (!error && _.get(field, 'properties')) {
@@ -456,11 +466,11 @@ const sanitizer = function() {
456
466
 
457
467
  if (!error && allowedValues && value) {
458
468
  if (_.isArray(value)) {
459
- if (_.size(value) && !_.size(_.intersection(value, allowedValues))) {
469
+ if (_.size(value) && !_.size(_.intersectionWith(value, allowedValues, _.isEqual))) {
460
470
  error = { message: fieldName + '_notAnAllowedValue', additionalInfo: { value } }
461
471
  }
462
472
  // remove non-matching entries, but do not fail/return error
463
- value = _.intersection(value, allowedValues)
473
+ value = _.intersectionWith(value, allowedValues, _.isEqual)
464
474
  _.set(paramsToCheck, fieldName, value)
465
475
  }
466
476
  else if (_.indexOf(allowedValues, value) < 0) {
package/package.json CHANGED
@@ -4,22 +4,22 @@
4
4
  "author": "Mark Poepping (https://www.admiralcloud.com)",
5
5
  "license": "MIT",
6
6
  "repository": "admiralcloud/ac-sanitizer",
7
- "version": "3.10.2",
7
+ "version": "3.10.5",
8
8
  "homepage": "https://www.admiralcloud.com",
9
9
  "dependencies": {
10
- "ac-countrylist": "^1.0.6",
10
+ "ac-countrylist": "^1.0.7",
11
11
  "ac-file-extensions": "^2.0.5",
12
- "ac-ip": "^1.3.7",
13
- "date-and-time": "^2.3.1",
12
+ "ac-ip": "^2.0.0",
13
+ "chai": "^4.3.6",
14
+ "date-and-time": "^2.4.0",
14
15
  "hashids": "^2.2.10",
15
16
  "lodash": "^4.17.21",
16
17
  "validator": "^13.7.0"
17
18
  },
18
19
  "devDependencies": {
19
20
  "ac-semantic-release": "^0.3.0",
20
- "eslint": "^8.14.0",
21
- "expect": "^27.5.1",
22
- "mocha": "^9.2.2",
21
+ "eslint": "^8.18.0",
22
+ "mocha": "^10.0.0",
23
23
  "nyc": "^15.1.0"
24
24
  },
25
25
  "scripts": {
package/test/test.js CHANGED
@@ -1,5 +1,8 @@
1
1
  const _ = require('lodash')
2
2
 
3
+ const { expect } = require('chai')
4
+ global.expect = expect
5
+
3
6
  const testMode = _.get(process, 'env.TESTMODE', false)
4
7
 
5
8
  const suite = {
package/test/tests/any.js CHANGED
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -30,13 +29,13 @@ module.exports = {
30
29
  }
31
30
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
32
31
  if (_.get(r, 'error')) {
33
- expect(_.get(r, 'error.message')).toEqual(test.error)
32
+ expect(_.get(r, 'error.message')).to.equal(test.error)
34
33
  if (_.get(test, 'additionalInfo')) {
35
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
34
+ expect(_.get(r, 'error.additionalInfo')).to.eql(_.get(test, 'additionalInfo'))
36
35
  }
37
36
  }
38
37
  else {
39
- expect(_.get(r, 'params.any')).toEqual(_.get(test, 'expected'))
38
+ expect(_.get(r, 'params.any')).to.eql(_.get(test, 'expected'))
40
39
  }
41
40
  return done()
42
41
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -29,6 +28,8 @@ module.exports = {
29
28
  { name: 'Array with maxSize - fail', type: 'array', value: ['a', 'b'], maxSize: 1, error: 'array_maxSizeBoundary' },
30
29
  { name: 'Array of fileExtensions', type: 'array', valueType: 'fileExtension', value: ['jpg'], expected: ['jpg'] },
31
30
  { name: 'Array of fileExtensions - contains invalid', type: 'array', valueType: 'fileExtension', value: ['jpg', 'textimage'], error: 'array_atLeastOneValueFailed' },
31
+ { name: 'Array of objects - valid', type: 'array', value: [{ 'createdAt': 'asc' }], enum: [{ 'createdAt': 'asc' }], expected: [{ 'createdAt': 'asc' }] },
32
+ { name: 'Array of objects - invalid', type: 'array', value: [{ 'createdAt': 'desc' }], enum: [{ 'createdAt': 'asc' }], error: 'array_notAnAllowedValue' },
32
33
  ]
33
34
 
34
35
 
@@ -51,13 +52,13 @@ module.exports = {
51
52
 
52
53
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
53
54
  if (_.get(r, 'error')) {
54
- expect(_.get(r, 'error.message')).toEqual(test.error)
55
+ expect(_.get(r, 'error.message')).to.equal(test.error)
55
56
  if (_.get(test, 'additionalInfo')) {
56
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
57
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
57
58
  }
58
59
  }
59
60
  else {
60
- expect(_.get(r, 'params.array')).toEqual(_.get(test, 'expected'))
61
+ expect(_.get(r, 'params.array')).to.eql(_.get(test, 'expected'))
61
62
  }
62
63
  return done()
63
64
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -29,13 +28,13 @@ module.exports = {
29
28
 
30
29
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
31
30
  if (_.get(r, 'error')) {
32
- expect(_.get(r, 'error.message')).toEqual(test.error)
31
+ expect(_.get(r, 'error.message')).to.equal(test.error)
33
32
  if (_.get(test, 'additionalInfo')) {
34
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
33
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
35
34
  }
36
35
  }
37
36
  else {
38
- expect(_.get(r, 'params.base64')).toEqual(_.get(test, 'expected'))
37
+ expect(_.get(r, 'params.base64')).to.equal(_.get(test, 'expected'))
39
38
  }
40
39
  return done()
41
40
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -29,13 +28,13 @@ module.exports = {
29
28
 
30
29
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
31
30
  if (_.get(r, 'error')) {
32
- expect(_.get(r, 'error.message')).toEqual(test.error)
31
+ expect(_.get(r, 'error.message')).to.equal(test.error)
33
32
  if (_.get(test, 'additionalInfo')) {
34
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
33
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
35
34
  }
36
35
  }
37
36
  else {
38
- expect(_.get(r, 'params.bool')).toEqual(_.get(test, 'expected'))
37
+ expect(_.get(r, 'params.bool')).to.equal(_.get(test, 'expected'))
39
38
  }
40
39
  return done()
41
40
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -25,13 +24,13 @@ module.exports = {
25
24
 
26
25
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
27
26
  if (_.get(r, 'error')) {
28
- expect(_.get(r, 'error.message')).toEqual(test.error)
27
+ expect(_.get(r, 'error.message')).to.equal(test.error)
29
28
  if (_.get(test, 'additionalInfo')) {
30
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
29
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
31
30
  }
32
31
  }
33
32
  else {
34
- expect(_.get(r, 'params.boolOrInteger')).toEqual(_.get(test, 'expected'))
33
+ expect(_.get(r, 'params.boolOrInteger')).to.equal(_.get(test, 'expected'))
35
34
  }
36
35
  return done()
37
36
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -30,13 +29,13 @@ module.exports = {
30
29
 
31
30
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
32
31
  if (_.get(r, 'error')) {
33
- expect(_.get(r, 'error.message')).toEqual(test.error)
32
+ expect(_.get(r, 'error.message')).to.equal(test.error)
34
33
  if (_.get(test, 'additionalInfo')) {
35
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
34
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
36
35
  }
37
36
  }
38
37
  else {
39
- expect(_.get(r, 'params.cidr')).toEqual(_.get(test, 'expected'))
38
+ expect(_.get(r, 'params.cidr')).to.eql(_.get(test, 'expected'))
40
39
  }
41
40
  return done()
42
41
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -26,13 +25,13 @@ module.exports = {
26
25
 
27
26
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
28
27
  if (_.get(r, 'error')) {
29
- expect(_.get(r, 'error.message')).toEqual(test.error)
28
+ expect(_.get(r, 'error.message')).to.equal(test.error)
30
29
  if (_.get(test, 'additionalInfo')) {
31
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
30
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
32
31
  }
33
32
  }
34
33
  else {
35
- expect(_.get(r, 'params.countryCode')).toEqual(_.get(test, 'expected'))
34
+ expect(_.get(r, 'params.countryCode')).to.equal(_.get(test, 'expected'))
36
35
  }
37
36
  return done()
38
37
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -32,13 +31,13 @@ module.exports = {
32
31
 
33
32
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
34
33
  if (_.get(r, 'error')) {
35
- expect(_.get(r, 'error.message')).toEqual(test.error)
34
+ expect(_.get(r, 'error.message')).to.equal(test.error)
36
35
  if (_.get(test, 'additionalInfo')) {
37
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
36
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
38
37
  }
39
38
  }
40
39
  else {
41
- expect(_.get(r, 'params.date')).toEqual(_.get(test, 'expected'))
40
+ expect(_.get(r, 'params.date')).to.equal(_.get(test, 'expected'))
42
41
  }
43
42
  return done()
44
43
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -27,13 +26,13 @@ module.exports = {
27
26
 
28
27
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
29
28
  if (_.get(r, 'error')) {
30
- expect(_.get(r, 'error.message')).toEqual(test.error)
29
+ expect(_.get(r, 'error.message')).to.equal(test.error)
31
30
  if (_.get(test, 'additionalInfo')) {
32
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
31
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
33
32
  }
34
33
  }
35
34
  else {
36
- expect(_.get(r, 'params.email')).toEqual(_.get(test, 'expected'))
35
+ expect(_.get(r, 'params.email')).to.equal(_.get(test, 'expected'))
37
36
  }
38
37
  return done()
39
38
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -28,13 +27,13 @@ module.exports = {
28
27
 
29
28
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
30
29
  if (_.get(r, 'error')) {
31
- expect(_.get(r, 'error.message')).toEqual(test.error)
30
+ expect(_.get(r, 'error.message')).to.equal(test.error)
32
31
  if (_.get(test, 'additionalInfo')) {
33
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
32
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
34
33
  }
35
34
  }
36
35
  else {
37
- expect(_.get(r, 'params.email')).toEqual(_.get(test, 'expected'))
36
+ expect(_.get(r, 'params.email')).to.equal(_.get(test, 'expected'))
38
37
  }
39
38
  return done()
40
39
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -26,13 +25,13 @@ module.exports = {
26
25
 
27
26
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
28
27
  if (_.get(r, 'error')) {
29
- expect(_.get(r, 'error.message')).toEqual(test.error)
28
+ expect(_.get(r, 'error.message')).to.equal(test.error)
30
29
  if (_.get(test, 'additionalInfo')) {
31
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
30
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
32
31
  }
33
32
  }
34
33
  else {
35
- expect(_.get(r, 'params.fileExtension')).toEqual(_.get(test, 'expected'))
34
+ expect(_.get(r, 'params.fileExtension')).to.equal(_.get(test, 'expected'))
36
35
  }
37
36
  return done()
38
37
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -24,13 +23,13 @@ module.exports = {
24
23
  }
25
24
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
26
25
  if (_.get(r, 'error')) {
27
- expect(_.get(r, 'error.message')).toEqual(test.error)
26
+ expect(_.get(r, 'error.message')).to.equal(test.error)
28
27
  if (_.get(test, 'additionalInfo')) {
29
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
28
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
30
29
  }
31
30
  }
32
31
  else {
33
- expect(_.get(r, 'params.fqdn')).toEqual(_.get(test, 'expected'))
32
+ expect(_.get(r, 'params.fqdn')).to.equal(_.get(test, 'expected'))
34
33
  }
35
34
  return done()
36
35
  })
package/test/tests/gps.js CHANGED
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -29,13 +28,13 @@ module.exports = {
29
28
 
30
29
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
31
30
  if (_.get(r, 'error')) {
32
- expect(_.get(r, 'error.message')).toEqual(test.error)
31
+ expect(_.get(r, 'error.message')).to.equal(test.error)
33
32
  if (_.get(test, 'additionalInfo')) {
34
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
33
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
35
34
  }
36
35
  }
37
36
  else {
38
- expect(_.get(r, 'params.gps')).toEqual(_.get(test, 'expected'))
37
+ expect(_.get(r, 'params.gps')).to.equal(_.get(test, 'expected'))
39
38
  }
40
39
  return done()
41
40
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  const Hashids = require('hashids/cjs')
@@ -29,13 +28,13 @@ module.exports = {
29
28
 
30
29
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
31
30
  if (_.get(r, 'error')) {
32
- expect(_.get(r, 'error.message')).toEqual(test.error)
31
+ expect(_.get(r, 'error.message')).to.equal(test.error)
33
32
  if (_.get(test, 'additionalInfo')) {
34
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
33
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
35
34
  }
36
35
  }
37
36
  else {
38
- expect(_.get(r, 'params.hashids')).toEqual(_.get(test, 'expected'))
37
+ expect(_.get(r, 'params.hashids')).to.eql(_.get(test, 'expected'))
39
38
  }
40
39
  return done()
41
40
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -26,13 +25,13 @@ module.exports = {
26
25
 
27
26
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
28
27
  if (_.get(r, 'error')) {
29
- expect(_.get(r, 'error.message')).toEqual(test.error)
28
+ expect(_.get(r, 'error.message')).to.equal(test.error)
30
29
  if (_.get(test, 'additionalInfo')) {
31
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
30
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
32
31
  }
33
32
  }
34
33
  else {
35
- expect(_.get(r, 'params.hexColor')).toEqual(_.get(test, 'expected'))
34
+ expect(_.get(r, 'params.hexColor')).to.equal(_.get(test, 'expected'))
36
35
  }
37
36
  return done()
38
37
  })
package/test/tests/ip.js CHANGED
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -27,13 +26,13 @@ module.exports = {
27
26
 
28
27
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
29
28
  if (_.get(r, 'error')) {
30
- expect(_.get(r, 'error.message')).toEqual(test.error)
29
+ expect(_.get(r, 'error.message')).to.equal(test.error)
31
30
  if (_.get(test, 'additionalInfo')) {
32
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
31
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
33
32
  }
34
33
  }
35
34
  else {
36
- expect(_.get(r, 'params.ip')).toEqual(_.get(test, 'expected'))
35
+ expect(_.get(r, 'params.ip')).to.equal(_.get(test, 'expected'))
37
36
  }
38
37
  return done()
39
38
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -32,13 +31,13 @@ module.exports = {
32
31
 
33
32
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
34
33
  if (_.get(test, 'error')) {
35
- expect(_.get(r, 'error.message')).toEqual(test.error)
34
+ expect(_.get(r, 'error.message')).to.equal(test.error)
36
35
  if (_.get(test, 'additionalInfo')) {
37
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
36
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
38
37
  }
39
38
  }
40
39
  else {
41
- expect(_.get(r, 'params.language')).toEqual(_.get(test, 'expected'))
40
+ expect(_.get(r, 'params.language')).to.equal(_.get(test, 'expected'))
42
41
  }
43
42
  return done()
44
43
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -81,13 +80,13 @@ module.exports = {
81
80
 
82
81
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
83
82
  if (_.get(test, 'error')) {
84
- expect(_.get(r, 'error.message')).toEqual(test.error)
83
+ expect(_.get(r, 'error.message')).to.equal(test.error)
85
84
  if (_.get(test, 'additionalInfo')) {
86
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
85
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
87
86
  }
88
87
  }
89
88
  else {
90
- expect(_.get(r, 'params.integer')).toEqual(_.get(test, 'expected'))
89
+ expect(_.get(r, 'params.integer')).to.equal(_.get(test, 'expected'))
91
90
  }
92
91
  return done()
93
92
  })
@@ -117,13 +116,13 @@ module.exports = {
117
116
 
118
117
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
119
118
  if (_.get(r, 'error')) {
120
- expect(_.get(r, 'error.message')).toEqual(test.error)
119
+ expect(_.get(r, 'error.message')).to.eql(test.error)
121
120
  if (_.get(test, 'additionalInfo')) {
122
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
121
+ expect(_.get(r, 'error.additionalInfo')).to.eql(_.get(test, 'additionalInfo'))
123
122
  }
124
123
  }
125
124
  else {
126
- expect(_.get(r, 'params.number')).toEqual(_.get(test, 'expected'))
125
+ expect(_.get(r, 'params.number')).to.eql(_.get(test, 'expected'))
127
126
  }
128
127
  return done()
129
128
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require("lodash");
2
- const expect = require("expect");
3
2
  const sanitizer = require("../../index");
4
3
 
5
4
  module.exports = {
@@ -34,6 +33,23 @@ module.exports = {
34
33
  enum: "blue",
35
34
  },
36
35
  },
36
+ {
37
+ name: "Object with non-allowed properties - do not ignore in strict mode",
38
+ type: "object",
39
+ properties: [
40
+ { field: "settings", type: "object", strict: true, properties:[
41
+ { field: 'allowed', type: 'boolean' }
42
+ ] },
43
+ ],
44
+ value: {
45
+ settings: {
46
+ allowed: true,
47
+ notAllowed: true
48
+ }
49
+ },
50
+ error: "object_settings_containsInvalidProperties",
51
+ additionalInfo: { properties: ['notAllowed'] }
52
+ },
37
53
  {
38
54
  name: "Object with nested properties - missing nested property",
39
55
  type: "object",
@@ -182,13 +198,13 @@ module.exports = {
182
198
  };
183
199
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck);
184
200
  if (_.get(r, 'error')) {
185
- expect(_.get(r, 'error.message')).toEqual(test.error)
201
+ expect(_.get(r, 'error.message')).to.equal(test.error)
186
202
  if (_.get(test, 'additionalInfo')) {
187
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
203
+ expect(_.get(r, 'error.additionalInfo')).to.eql(_.get(test, 'additionalInfo'))
188
204
  }
189
205
  }
190
206
  else {
191
- expect(_.get(r, "params.object")).toEqual(_.get(test, "expected"));
207
+ expect(_.get(r, "params.object")).to.eql(_.get(test, "expected"));
192
208
  }
193
209
  return done();
194
210
  });
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -27,13 +26,13 @@ module.exports = {
27
26
 
28
27
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
29
28
  if (_.get(r, 'error')) {
30
- expect(_.get(r, 'error.message')).toEqual(test.error)
29
+ expect(_.get(r, 'error.message')).to.equal(test.error)
31
30
  if (_.get(test, 'additionalInfo')) {
32
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
31
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
33
32
  }
34
33
  }
35
34
  else {
36
- expect(_.get(r, 'params.ratio')).toEqual(_.get(test, 'expected'))
35
+ expect(_.get(r, 'params.ratio')).to.eql(_.get(test, 'expected'))
37
36
  }
38
37
  return done()
39
38
  })
package/test/tests/rgb.js CHANGED
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -29,13 +28,13 @@ module.exports = {
29
28
 
30
29
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
31
30
  if (_.get(r, 'error')) {
32
- expect(_.get(r, 'error.message')).toEqual(test.error)
31
+ expect(_.get(r, 'error.message')).to.equal(test.error)
33
32
  if (_.get(test, 'additionalInfo')) {
34
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
33
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
35
34
  }
36
35
  }
37
36
  else {
38
- expect(_.get(r, 'params.rgb')).toEqual(_.get(test, 'expected'))
37
+ expect(_.get(r, 'params.rgb')).to.equal(_.get(test, 'expected'))
39
38
  }
40
39
  return done()
41
40
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -33,13 +32,13 @@ module.exports = {
33
32
 
34
33
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
35
34
  if (_.get(r, 'error')) {
36
- expect(_.get(r, 'error.message')).toEqual(test.error)
35
+ expect(_.get(r, 'error.message')).to.equal(test.error)
37
36
  if (_.get(test, 'additionalInfo')) {
38
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
37
+ expect(_.get(r, 'error.additionalInfo')).to.eql(_.get(test, 'additionalInfo'))
39
38
  }
40
39
  }
41
40
  else {
42
- expect(_.get(r, 'params.string')).toEqual(_.get(test, 'expected'))
41
+ expect(_.get(r, 'params.string')).to.eql(_.get(test, 'expected'))
43
42
  }
44
43
  return done()
45
44
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -27,13 +26,13 @@ module.exports = {
27
26
 
28
27
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
29
28
  if (_.get(r, 'error')) {
30
- expect(_.get(r, 'error.message')).toEqual(test.error)
29
+ expect(_.get(r, 'error.message')).to.equal(test.error)
31
30
  if (_.get(test, 'additionalInfo')) {
32
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
31
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
33
32
  }
34
33
  }
35
34
  else {
36
- expect(_.get(r, 'params.stringOrInteger')).toEqual(_.get(test, 'expected'))
35
+ expect(_.get(r, 'params.stringOrInteger')).to.equal(_.get(test, 'expected'))
37
36
  }
38
37
  return done()
39
38
  })
package/test/tests/url.js CHANGED
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
  module.exports = {
@@ -25,13 +24,13 @@ module.exports = {
25
24
 
26
25
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
27
26
  if (_.get(r, 'error')) {
28
- expect(_.get(r, 'error.message')).toEqual(test.error)
27
+ expect(_.get(r, 'error.message')).to.equal(test.error)
29
28
  if (_.get(test, 'additionalInfo')) {
30
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
29
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
31
30
  }
32
31
  }
33
32
  else {
34
- expect(_.get(r, 'params.url')).toEqual(_.get(test, 'expected'))
33
+ expect(_.get(r, 'params.url')).to.equal(_.get(test, 'expected'))
35
34
  }
36
35
  return done()
37
36
  })
@@ -1,5 +1,4 @@
1
1
  const _ = require('lodash')
2
- const expect = require('expect')
3
2
  const sanitizer = require('../../index')
4
3
 
5
4
 
@@ -26,13 +25,13 @@ module.exports = {
26
25
 
27
26
  let r = sanitizer.checkAndSanitizeValues(fieldsToCheck)
28
27
  if (_.get(r, 'error')) {
29
- expect(_.get(r, 'error.message')).toEqual(test.error)
28
+ expect(_.get(r, 'error.message')).to.equal(test.error)
30
29
  if (_.get(test, 'additionalInfo')) {
31
- expect(_.get(r, 'error.additionalInfo')).toEqual(_.get(test, 'additionalInfo'))
30
+ expect(_.get(r, 'error.additionalInfo')).to.equal(_.get(test, 'additionalInfo'))
32
31
  }
33
32
  }
34
33
  else {
35
- expect(_.get(r, 'params.uuid')).toEqual(_.get(test, 'expected'))
34
+ expect(_.get(r, 'params.uuid')).to.equal(_.get(test, 'expected'))
36
35
  }
37
36
  return done()
38
37
  })