Skip to content

Commit 8451774

Browse files
authored
fix(rulesets): simplify schema used in duplicated-entry-in-enum (#2055)
1 parent 7f2f5aa commit 8451774

File tree

2 files changed

+21
-38
lines changed

2 files changed

+21
-38
lines changed

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

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -24,30 +24,6 @@ testRule('duplicated-entry-in-enum', [
2424
errors: [],
2525
},
2626

27-
{
28-
name: 'oas2: enum is an object property',
29-
document: {
30-
openapi: '3.0.2',
31-
components: {
32-
schemas: {
33-
schema: {
34-
type: 'object',
35-
properties: {
36-
enum: {
37-
type: 'array',
38-
items: {
39-
type: 'string',
40-
},
41-
},
42-
},
43-
},
44-
},
45-
},
46-
},
47-
48-
errors: [],
49-
},
50-
5127
{
5228
name: 'oas2: enum with duplicated entries',
5329
document: {
@@ -70,9 +46,24 @@ testRule('duplicated-entry-in-enum', [
7046
},
7147

7248
{
73-
name: 'oas3: empty object',
49+
name: 'oas3: enum is a property',
7450
document: {
75-
openapi: '3.0.0',
51+
openapi: '3.0.2',
52+
components: {
53+
schemas: {
54+
schema: {
55+
type: 'object',
56+
properties: {
57+
enum: {
58+
type: 'array',
59+
items: {
60+
type: 'string',
61+
},
62+
},
63+
},
64+
},
65+
},
66+
},
7667
},
7768
errors: [],
7869
},

packages/rulesets/src/oas/index.ts

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -123,22 +123,14 @@ const ruleset = {
123123
severity: 'warn',
124124
recommended: true,
125125
message: '{{error}}',
126-
given: '$..enum',
126+
given: ["$..[?(@property !== 'properties' && @ && @.enum)]"],
127127
then: {
128+
field: 'enum',
128129
function: oasSchema,
129130
functionOptions: {
130131
schema: {
131-
oneOf: [
132-
{
133-
type: 'array',
134-
uniqueItems: true,
135-
},
136-
{
137-
not: {
138-
type: 'array',
139-
},
140-
},
141-
],
132+
type: 'array',
133+
uniqueItems: true,
142134
},
143135
},
144136
},

0 commit comments

Comments
 (0)