From 0c7b16fba9108166e27230b811fcd37830eb3f59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Thu, 10 Mar 2022 14:43:40 +0100 Subject: [PATCH] fix(ruleset-migrator): validate aliases correctly --- .../__fixtures__/aliases-variant-1/output.cjs | 6 +++--- .../__fixtures__/aliases-variant-1/output.mjs | 6 +++--- .../__fixtures__/aliases-variant-1/ruleset.yaml | 9 ++++++--- .../__fixtures__/aliases-variant-2/output.cjs | 4 ++-- .../__fixtures__/aliases-variant-2/output.mjs | 4 ++-- .../__fixtures__/aliases-variant-2/ruleset.yaml | 6 ++++-- packages/ruleset-migrator/src/validation/schema.ts | 10 ++++++++-- packages/ruleset-migrator/src/validation/types.ts | 6 +++--- 8 files changed, 31 insertions(+), 20 deletions(-) diff --git a/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-1/output.cjs b/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-1/output.cjs index 9d5b022b2..6c3ffea3d 100644 --- a/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-1/output.cjs +++ b/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-1/output.cjs @@ -1,7 +1,7 @@ module.exports = { aliases: { - PathItem: '$.paths[*][*]', - Description: '$..description', - Name: '$..name', + PathItem: ['$.paths[*][*]'], + Description: ['$..description'], + Name: ['$..name'], }, }; diff --git a/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-1/output.mjs b/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-1/output.mjs index 0afe1279b..2236fc546 100644 --- a/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-1/output.mjs +++ b/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-1/output.mjs @@ -1,7 +1,7 @@ export default { aliases: { - PathItem: '$.paths[*][*]', - Description: '$..description', - Name: '$..name', + PathItem: ['$.paths[*][*]'], + Description: ['$..description'], + Name: ['$..name'], }, }; diff --git a/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-1/ruleset.yaml b/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-1/ruleset.yaml index 04bbd2afa..ddc54a18c 100644 --- a/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-1/ruleset.yaml +++ b/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-1/ruleset.yaml @@ -1,4 +1,7 @@ aliases: - PathItem: $.paths[*][*] - Description: $..description - Name: $..name + PathItem: + - $.paths[*][*] + Description: + - $..description + Name: + - $..name diff --git a/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-2/output.cjs b/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-2/output.cjs index 0bea3264f..61723642e 100644 --- a/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-2/output.cjs +++ b/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-2/output.cjs @@ -6,11 +6,11 @@ module.exports = { targets: [ { formats: [oas2], - given: '$.definitions[*]', + given: ['$.definitions[*]'], }, { formats: [oas3_0, oas3_1], - given: '$.components.schemas[*]', + given: ['$.components.schemas[*]'], }, ], }, diff --git a/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-2/output.mjs b/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-2/output.mjs index 637c434ba..08a7ee1d3 100644 --- a/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-2/output.mjs +++ b/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-2/output.mjs @@ -6,11 +6,11 @@ export default { targets: [ { formats: [oas2], - given: '$.definitions[*]', + given: ['$.definitions[*]'], }, { formats: [oas3_0, oas3_1], - given: '$.components.schemas[*]', + given: ['$.components.schemas[*]'], }, ], }, diff --git a/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-2/ruleset.yaml b/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-2/ruleset.yaml index 803c03d25..1c57576f4 100644 --- a/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-2/ruleset.yaml +++ b/packages/ruleset-migrator/src/__tests__/__fixtures__/aliases-variant-2/ruleset.yaml @@ -4,8 +4,10 @@ aliases: targets: - formats: - oas2 - given: $.definitions[*] + given: + - $.definitions[*] - formats: - oas3.0 - oas3.1 - given: $.components.schemas[*] + given: + - $.components.schemas[*] diff --git a/packages/ruleset-migrator/src/validation/schema.ts b/packages/ruleset-migrator/src/validation/schema.ts index 715118298..fa80ef69f 100644 --- a/packages/ruleset-migrator/src/validation/schema.ts +++ b/packages/ruleset-migrator/src/validation/schema.ts @@ -9,7 +9,10 @@ const schema = { additionalProperties: { oneOf: [ { - type: 'string', + type: 'array', + items: { + type: 'string', + }, }, { type: 'object', @@ -27,7 +30,10 @@ const schema = { $ref: '#/properties/formats', }, given: { - type: 'string', + type: 'array', + items: { + type: 'string', + }, }, }, required: ['formats', 'given'], diff --git a/packages/ruleset-migrator/src/validation/types.ts b/packages/ruleset-migrator/src/validation/types.ts index 8cccf3fa5..7234c9eb8 100644 --- a/packages/ruleset-migrator/src/validation/types.ts +++ b/packages/ruleset-migrator/src/validation/types.ts @@ -3,7 +3,7 @@ export interface Ruleset { aliases?: { [k: string]: - | string + | string[] | { description?: string; targets: [ @@ -42,7 +42,7 @@ export interface Ruleset { | 'json-schema-2020-12' )[] ]; - given: string; + given: string[]; [k: string]: unknown; }, ...{ @@ -80,7 +80,7 @@ export interface Ruleset { | 'json-schema-2020-12' )[] ]; - given: string; + given: string[]; [k: string]: unknown; }[] ];