Skip to content

Commit 8c1d8c0

Browse files
committed
fix(rulesets): restore null guard in duplicated-entry-in-enum JSONPath
Regression from #2934: evaluating @.enum on null nodes (e.g. example values) crashes Spectral (#2959). Restores @ != null while keeping the array filter.
1 parent 076f0d2 commit 8c1d8c0

2 files changed

Lines changed: 20 additions & 1 deletion

File tree

packages/rulesets/src/oas/__tests__/duplicated-entry-in-enum.test.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,4 +158,23 @@ testRule('duplicated-entry-in-enum', [
158158
},
159159
errors: [],
160160
},
161+
162+
{
163+
name: 'oas3: null nodes in example values do not crash (regression #2959)',
164+
document: {
165+
openapi: '3.0.2',
166+
info: { title: 'Test', version: '1.0' },
167+
paths: {},
168+
components: {
169+
examples: {
170+
test: {
171+
value: {
172+
foo: null,
173+
},
174+
},
175+
},
176+
},
177+
},
178+
errors: [],
179+
},
161180
]);

packages/rulesets/src/oas/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ const ruleset = {
159159
severity: 'warn',
160160
recommended: true,
161161
message: '{{error}}',
162-
given: ["$..[?(@property !== 'properties' && @.enum && @.enum.constructor.name === 'Array')]"],
162+
given: ["$..[?(@property !== 'properties' && @ != null && @.enum && @.enum.constructor.name === 'Array')]"],
163163
then: {
164164
field: 'enum',
165165
function: oasSchema,

0 commit comments

Comments
 (0)