Skip to content

Commit 48cf442

Browse files
author
Mika Kunnas
committed
change: additionalProperties are set to false instead of removing it when dealing with pattern properties
1 parent a16f01c commit 48cf442

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ function patternPropertiesHandler(schema) {
167167
type = patternsObj[pattern].type;
168168

169169
if ((type === additProps.type) && type !== 'object') {
170-
delete schema.additionalProperties;
170+
schema.additionalProperties = false;
171171
break;
172172
}
173173
}

test/pattern_properties.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,15 @@ test('handling additional properties of the same type: string', function(assert)
2727
expected = {
2828
$schema: 'http://json-schema.org/draft-04/schema#',
2929
type: 'object',
30+
additionalProperties: false,
3031
patternProperties: {
3132
'^[a-z]*$': {
3233
type: 'string'
3334
}
3435
}
3536
};
3637

37-
assert.deepEqual(result, expected, 'additionalProperties deleted');
38+
assert.deepEqual(result, expected, 'additionalProperties set to false');
3839
});
3940

4041
test('handling additional properties of the same type: number', function(assert) {
@@ -62,14 +63,15 @@ test('handling additional properties of the same type: number', function(assert)
6263
expected = {
6364
$schema: 'http://json-schema.org/draft-04/schema#',
6465
type: 'object',
66+
additionalProperties: false,
6567
patternProperties: {
6668
'^[a-z]*$': {
6769
type: 'number'
6870
}
6971
}
7072
};
7173

72-
assert.deepEqual(result, expected, 'additionalProperties deleted');
74+
assert.deepEqual(result, expected, 'additionalProperties set to false');
7375
});
7476

7577
test('handling additional properties with one of patternProperty types', function(assert) {
@@ -100,6 +102,7 @@ test('handling additional properties with one of patternProperty types', functio
100102
expected = {
101103
$schema: 'http://json-schema.org/draft-04/schema#',
102104
type: 'object',
105+
additionalProperties: false,
103106
patternProperties: {
104107
'^[a-z]*$': {
105108
type: 'string'
@@ -110,7 +113,7 @@ test('handling additional properties with one of patternProperty types', functio
110113
}
111114
};
112115

113-
assert.deepEqual(result, expected, 'additionalProperties deleted');
116+
assert.deepEqual(result, expected, 'additionalProperties set to false');
114117
});
115118

116119
test('keeping additionalProperties with object type', function(assert) {
@@ -154,7 +157,7 @@ test('keeping additionalProperties with object type', function(assert) {
154157
}
155158
};
156159

157-
assert.deepEqual(result, expected, 'additionalProperties kept');
160+
assert.deepEqual(result, expected, 'additionalProperties kept unchanged');
158161
});
159162

160163
test('not supporting patternProperties', function(assert) {

0 commit comments

Comments
 (0)