diff --git a/.github/workflows/spectral-lint.yml b/.github/workflows/spectral-lint.yml index 382c7949f4..a694c862fb 100644 --- a/.github/workflows/spectral-lint.yml +++ b/.github/workflows/spectral-lint.yml @@ -3,14 +3,14 @@ name: Spectral Lint Commited OpenAPI Spec # Trigger the workflow on pull requests and pushes to the main branch on: pull_request: - paths: + paths: - 'tools/spectral/**' - 'openapi/**.yaml' - 'package.json' push: branches: - main - paths: + paths: - 'tools/spectral/**' - 'openapi/**.yaml' - 'package.json' @@ -18,7 +18,7 @@ on: jobs: spectral-lint: runs-on: ubuntu-latest - + steps: # Checkout the code - name: Checkout repository @@ -48,3 +48,4 @@ jobs: with: file_glob: v2.yaml spectral_ruleset: tools/spectral/ipa/ipa-spectral.yaml + \ No newline at end of file diff --git a/tools/spectral/ipa/__tests__/IPA102EachPathAlternatesBetweenResourceNameAndPathParam.test.js b/tools/spectral/ipa/__tests__/IPA102EachPathAlternatesBetweenResourceNameAndPathParam.test.js index 8605ef0dc0..41a6e0cfbf 100644 --- a/tools/spectral/ipa/__tests__/IPA102EachPathAlternatesBetweenResourceNameAndPathParam.test.js +++ b/tools/spectral/ipa/__tests__/IPA102EachPathAlternatesBetweenResourceNameAndPathParam.test.js @@ -49,37 +49,37 @@ testRule('xgen-IPA-102-path-alternate-resource-name-path-param', [ code: 'xgen-IPA-102-path-alternate-resource-name-path-param', message: 'API paths must alternate between resource name and path params.', path: ['paths', '/api/atlas/v2/resourceName1/resourceName2'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-102-path-alternate-resource-name-path-param', message: 'API paths must alternate between resource name and path params.', path: ['paths', '/api/atlas/v2/resourceName/{pathParam1}/{pathParam2}'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-102-path-alternate-resource-name-path-param', message: 'API paths must alternate between resource name and path params.', path: ['paths', '/api/atlas/v2/resourceName1/{pathParam1}/resourceName2/resourceName3'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-102-path-alternate-resource-name-path-param', message: 'API paths must alternate between resource name and path params.', path: ['paths', '/api/atlas/v2/resourceName1/{pathParam1}/resourceName2/{pathParam2}/{pathParam3}'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-102-path-alternate-resource-name-path-param', message: 'API paths must alternate between resource name and path params.', path: ['paths', '/api/atlas/v2/{pathParam}'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-102-path-alternate-resource-name-path-param', message: 'API paths must alternate between resource name and path params.', path: ['paths', '/api/atlas/v2/{pathParam1}/{pathParam2}'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, @@ -100,37 +100,37 @@ testRule('xgen-IPA-102-path-alternate-resource-name-path-param', [ code: 'xgen-IPA-102-path-alternate-resource-name-path-param', message: 'API paths must alternate between resource name and path params.', path: ['paths', '/api/atlas/v2/unauth/resourceName1/resourceName2'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-102-path-alternate-resource-name-path-param', message: 'API paths must alternate between resource name and path params.', path: ['paths', '/api/atlas/v2/unauth/resourceName/{pathParam1}/{pathParam2}'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-102-path-alternate-resource-name-path-param', message: 'API paths must alternate between resource name and path params.', path: ['paths', '/api/atlas/v2/unauth/resourceName1/{pathParam1}/resourceName2/resourceName3'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-102-path-alternate-resource-name-path-param', message: 'API paths must alternate between resource name and path params.', path: ['paths', '/api/atlas/v2/unauth/resourceName1/{pathParam1}/resourceName2/{pathParam2}/{pathParam3}'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-102-path-alternate-resource-name-path-param', message: 'API paths must alternate between resource name and path params.', path: ['paths', '/api/atlas/v2/unauth/{pathParam}'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-102-path-alternate-resource-name-path-param', message: 'API paths must alternate between resource name and path params.', path: ['paths', '/api/atlas/v2/unauth/{pathParam1}/{pathParam2}'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA104EachResourceHasGetMethod.test.js b/tools/spectral/ipa/__tests__/IPA104EachResourceHasGetMethod.test.js index 006ce8be41..f4500faf4f 100644 --- a/tools/spectral/ipa/__tests__/IPA104EachResourceHasGetMethod.test.js +++ b/tools/spectral/ipa/__tests__/IPA104EachResourceHasGetMethod.test.js @@ -94,31 +94,31 @@ testRule('xgen-IPA-104-resource-has-GET', [ code: 'xgen-IPA-104-resource-has-GET', message: 'APIs must provide a get method for resources.', path: ['paths', '/standard'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-104-resource-has-GET', message: 'APIs must provide a get method for resources.', path: ['paths', '/standard/{exampleId}/nested'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-104-resource-has-GET', message: 'APIs must provide a get method for resources.', path: ['paths', '/standard/{exampleId}/nestedSingleton'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-104-resource-has-GET', message: 'APIs must provide a get method for resources.', path: ['paths', '/custom'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-104-resource-has-GET', message: 'APIs must provide a get method for resources.', path: ['paths', '/standardWithoutSubResource'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA104GetMethodHasNoRequestBody.test.js b/tools/spectral/ipa/__tests__/IPA104GetMethodHasNoRequestBody.test.js index 0cd78970b0..07bf6a929c 100644 --- a/tools/spectral/ipa/__tests__/IPA104GetMethodHasNoRequestBody.test.js +++ b/tools/spectral/ipa/__tests__/IPA104GetMethodHasNoRequestBody.test.js @@ -63,13 +63,13 @@ testRule('xgen-IPA-104-get-method-no-request-body', [ code: 'xgen-IPA-104-get-method-no-request-body', message: 'The Get method must not include a request body.', path: ['paths', '/resource/{id}', 'get'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-104-get-method-no-request-body', message: 'The Get method must not include a request body.', path: ['paths', '/resource/{id}/singleton', 'get'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA104GetMethodResponseHasNoInputFields.test.js b/tools/spectral/ipa/__tests__/IPA104GetMethodResponseHasNoInputFields.test.js index 19c6396da7..669d2226a2 100644 --- a/tools/spectral/ipa/__tests__/IPA104GetMethodResponseHasNoInputFields.test.js +++ b/tools/spectral/ipa/__tests__/IPA104GetMethodResponseHasNoInputFields.test.js @@ -141,7 +141,7 @@ testRule('xgen-IPA-104-get-method-response-has-no-input-fields', [ 'content', 'application/vnd.atlas.2024-08-05+json', ], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-104-get-method-response-has-no-input-fields', @@ -156,7 +156,7 @@ testRule('xgen-IPA-104-get-method-response-has-no-input-fields', [ 'content', 'application/vnd.atlas.2024-08-05+json', ], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA104GetMethodReturnsResponseSuffixedObject.test.js b/tools/spectral/ipa/__tests__/IPA104GetMethodReturnsResponseSuffixedObject.test.js index b373421913..fec182de92 100644 --- a/tools/spectral/ipa/__tests__/IPA104GetMethodReturnsResponseSuffixedObject.test.js +++ b/tools/spectral/ipa/__tests__/IPA104GetMethodReturnsResponseSuffixedObject.test.js @@ -162,7 +162,7 @@ testRule('xgen-IPA-104-get-method-returns-response-suffixed-object', [ 'content', 'application/vnd.atlas.2023-01-01+json', ], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-104-get-method-returns-response-suffixed-object', @@ -176,7 +176,7 @@ testRule('xgen-IPA-104-get-method-returns-response-suffixed-object', [ 'content', 'application/vnd.atlas.2024-01-01+json', ], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-104-get-method-returns-response-suffixed-object', @@ -190,7 +190,7 @@ testRule('xgen-IPA-104-get-method-returns-response-suffixed-object', [ 'content', 'application/vnd.atlas.2025-01-01+json', ], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-104-get-method-returns-response-suffixed-object', @@ -204,7 +204,7 @@ testRule('xgen-IPA-104-get-method-returns-response-suffixed-object', [ 'content', 'application/vnd.atlas.2024-08-05+json', ], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA104GetMethodReturnsSingleResource.test.js b/tools/spectral/ipa/__tests__/IPA104GetMethodReturnsSingleResource.test.js index d7792393a1..825e055031 100644 --- a/tools/spectral/ipa/__tests__/IPA104GetMethodReturnsSingleResource.test.js +++ b/tools/spectral/ipa/__tests__/IPA104GetMethodReturnsSingleResource.test.js @@ -174,7 +174,7 @@ testRule('xgen-IPA-104-get-method-returns-single-resource', [ 'content', 'application/vnd.atlas.2024-08-05+json', ], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-104-get-method-returns-single-resource', @@ -189,7 +189,7 @@ testRule('xgen-IPA-104-get-method-returns-single-resource', [ 'content', 'application/vnd.atlas.2024-08-05+json', ], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-104-get-method-returns-single-resource', @@ -204,7 +204,7 @@ testRule('xgen-IPA-104-get-method-returns-single-resource', [ 'content', 'application/vnd.atlas.2024-08-05+json', ], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-104-get-method-returns-single-resource', @@ -219,7 +219,7 @@ testRule('xgen-IPA-104-get-method-returns-single-resource', [ 'content', 'application/vnd.atlas.2024-08-05+json', ], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA104GetResponseCodeShouldBe200OK.test.js b/tools/spectral/ipa/__tests__/IPA104GetResponseCodeShouldBe200OK.test.js index fc13ddc95e..16fa79aef2 100644 --- a/tools/spectral/ipa/__tests__/IPA104GetResponseCodeShouldBe200OK.test.js +++ b/tools/spectral/ipa/__tests__/IPA104GetResponseCodeShouldBe200OK.test.js @@ -95,28 +95,28 @@ testRule('xgen-IPA-104-get-method-response-code-is-200', [ message: 'The Get method must return a 200 OK response. This method either lacks a 200 OK response or defines a different 2xx status code.', path: ['paths', '/resourceOne/{id}', 'get'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-104-get-method-response-code-is-200', message: 'The Get method must return a 200 OK response. This method either lacks a 200 OK response or defines a different 2xx status code.', path: ['paths', '/resourceTwo/{id}', 'get'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-104-get-method-response-code-is-200', message: 'The Get method must return a 200 OK response. This method either lacks a 200 OK response or defines a different 2xx status code.', path: ['paths', '/resourceThree/{id}', 'get'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-104-get-method-response-code-is-200', message: 'The Get method must return a 200 OK response. This method either lacks a 200 OK response or defines a different 2xx status code.', path: ['paths', '/resource/{id}/singleton', 'get'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA105EachResourceHasListMethod.test.js b/tools/spectral/ipa/__tests__/IPA105EachResourceHasListMethod.test.js index e76de33946..60cc41971c 100644 --- a/tools/spectral/ipa/__tests__/IPA105EachResourceHasListMethod.test.js +++ b/tools/spectral/ipa/__tests__/IPA105EachResourceHasListMethod.test.js @@ -55,13 +55,13 @@ testRule('xgen-IPA-105-resource-has-list', [ code: 'xgen-IPA-105-resource-has-list', message: 'APIs must provide a List method for resources.', path: ['paths', '/standard'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-105-resource-has-list', message: 'APIs must provide a List method for resources.', path: ['paths', '/standard/{exampleId}/nested'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA105ListMethodHasNoRequestBody.test.js b/tools/spectral/ipa/__tests__/IPA105ListMethodHasNoRequestBody.test.js index 1278173f25..0e7efeec78 100644 --- a/tools/spectral/ipa/__tests__/IPA105ListMethodHasNoRequestBody.test.js +++ b/tools/spectral/ipa/__tests__/IPA105ListMethodHasNoRequestBody.test.js @@ -85,7 +85,7 @@ testRule('xgen-IPA-105-list-method-no-request-body', [ code: 'xgen-IPA-105-list-method-no-request-body', message: 'The List method must not include a request body.', path: ['paths', '/resource', 'get'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA105ListMethodResponseIsGetMethodResponse.test.js b/tools/spectral/ipa/__tests__/IPA105ListMethodResponseIsGetMethodResponse.test.js index be02af5db8..6458b1c2aa 100644 --- a/tools/spectral/ipa/__tests__/IPA105ListMethodResponseIsGetMethodResponse.test.js +++ b/tools/spectral/ipa/__tests__/IPA105ListMethodResponseIsGetMethodResponse.test.js @@ -400,7 +400,7 @@ testRule('xgen-IPA-105-list-method-response-is-get-method-response', [ message: 'The schema of each result in the List method response must be the same schema as the response of the Get method.', path: ['paths', '/resource', 'get', 'responses', '200', 'content', 'application/vnd.atlas.2024-08-05+json'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-105-list-method-response-is-get-method-response', @@ -415,14 +415,14 @@ testRule('xgen-IPA-105-list-method-response-is-get-method-response', [ 'content', 'application/vnd.atlas.2024-08-05+json', ], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-105-list-method-response-is-get-method-response', message: 'Could not validate that the List method returns the same resource object as the Get method. The Get method does not have a schema.', path: ['paths', '/resourceTwo', 'get', 'responses', '200', 'content', 'application/vnd.atlas.2024-01-05+json'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-105-list-method-response-is-get-method-response', @@ -437,7 +437,7 @@ testRule('xgen-IPA-105-list-method-response-is-get-method-response', [ 'content', 'application/vnd.atlas.2024-01-05+json', ], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, @@ -484,7 +484,7 @@ testRule('xgen-IPA-105-list-method-response-is-get-method-response', [ message: 'The schema of each result in the List method response must be the same schema as the response of the Get method.', path: ['paths', '/resource', 'get', 'responses', '200', 'content', 'application/vnd.atlas.2024-08-05+json'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA105ListResponseCodeShouldBe200OK.test.js b/tools/spectral/ipa/__tests__/IPA105ListResponseCodeShouldBe200OK.test.js index 7a1342dae2..90880ce29e 100644 --- a/tools/spectral/ipa/__tests__/IPA105ListResponseCodeShouldBe200OK.test.js +++ b/tools/spectral/ipa/__tests__/IPA105ListResponseCodeShouldBe200OK.test.js @@ -83,28 +83,28 @@ testRule('xgen-IPA-105-list-method-response-code-is-200', [ message: 'The List method must return a 200 OK response. This method either lacks a 200 OK response or defines a different 2xx status code.', path: ['paths', '/resourceOne', 'get'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-105-list-method-response-code-is-200', message: 'The List method must return a 200 OK response. This method either lacks a 200 OK response or defines a different 2xx status code.', path: ['paths', '/resourceTwo', 'get'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-105-list-method-response-code-is-200', message: 'The List method must return a 200 OK response. This method either lacks a 200 OK response or defines a different 2xx status code.', path: ['paths', '/resourceThree', 'get'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-105-list-method-response-code-is-200', message: 'The List method must return a 200 OK response. This method either lacks a 200 OK response or defines a different 2xx status code.', path: ['paths', '/resourceFour', 'get'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA105exceptionExtensionFormat.test.js b/tools/spectral/ipa/__tests__/IPA105exceptionExtensionFormat.test.js index 1a72f31b08..9b2dd5c9c8 100644 --- a/tools/spectral/ipa/__tests__/IPA105exceptionExtensionFormat.test.js +++ b/tools/spectral/ipa/__tests__/IPA105exceptionExtensionFormat.test.js @@ -53,25 +53,25 @@ testRule('xgen-IPA-005-exception-extension-format', [ code: 'xgen-IPA-005-exception-extension-format', message: 'IPA exceptions must have a valid rule name and a reason.', path: ['paths', '/path1', 'x-xgen-IPA-exception'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-005-exception-extension-format', message: 'IPA exceptions must have a valid rule name and a reason.', path: ['paths', '/path2', 'x-xgen-IPA-exception', 'xgen-IPA-100-rule-name'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-005-exception-extension-format', message: 'IPA exceptions must have a valid rule name and a reason.', path: ['paths', '/path3', 'x-xgen-IPA-exception', 'invalid-rule-name'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-005-exception-extension-format', message: 'IPA exceptions must have a valid rule name and a reason.', path: ['paths', '/path4', 'x-xgen-IPA-exception', 'xgen-IPA-100-rule-name'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA106CreateMethodRequestBodyIsRequestSuffixedObject.test.js b/tools/spectral/ipa/__tests__/IPA106CreateMethodRequestBodyIsRequestSuffixedObject.test.js index b76e2592d5..4c89c4398b 100644 --- a/tools/spectral/ipa/__tests__/IPA106CreateMethodRequestBodyIsRequestSuffixedObject.test.js +++ b/tools/spectral/ipa/__tests__/IPA106CreateMethodRequestBodyIsRequestSuffixedObject.test.js @@ -156,31 +156,31 @@ testRule('xgen-IPA-106-create-method-request-body-is-request-suffixed-object', [ code: 'xgen-IPA-106-create-method-request-body-is-request-suffixed-object', message: 'The schema must reference a schema with a Request suffix.', path: ['paths', '/resource', 'post', 'requestBody', 'content', 'application/vnd.atlas.2023-01-01+json'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-106-create-method-request-body-is-request-suffixed-object', message: 'The schema must reference a schema with a Request suffix.', path: ['paths', '/resource', 'post', 'requestBody', 'content', 'application/vnd.atlas.2024-01-01+json'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-106-create-method-request-body-is-request-suffixed-object', message: 'The schema must reference a schema with a Request suffix.', path: ['paths', '/resourceTwo', 'post', 'requestBody', 'content', 'application/vnd.atlas.2023-01-01+json'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-106-create-method-request-body-is-request-suffixed-object', message: 'The schema must reference a schema with a Request suffix.', path: ['paths', '/resourceTwo', 'post', 'requestBody', 'content', 'application/vnd.atlas.2024-01-01+json'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-106-create-method-request-body-is-request-suffixed-object', message: 'The schema is defined inline and must reference a predefined schema.', path: ['paths', '/resourceThree', 'post', 'requestBody', 'content', 'application/vnd.atlas.2023-01-01+json'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA106CreateMethodRequestHasNoReadonlyFields.test.js b/tools/spectral/ipa/__tests__/IPA106CreateMethodRequestHasNoReadonlyFields.test.js index bd5c056b11..7b3dc739fa 100644 --- a/tools/spectral/ipa/__tests__/IPA106CreateMethodRequestHasNoReadonlyFields.test.js +++ b/tools/spectral/ipa/__tests__/IPA106CreateMethodRequestHasNoReadonlyFields.test.js @@ -154,14 +154,14 @@ testRule('xgen-IPA-106-create-method-request-has-no-readonly-fields', [ message: 'The Create method request object must not include input fields (readOnly properties). Found readOnly property at: id. ', path: ['paths', '/resource', 'post', 'requestBody', 'content', 'application/vnd.atlas.2023-01-01+json'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-106-create-method-request-has-no-readonly-fields', message: 'The Create method request object must not include input fields (readOnly properties). Found readOnly property at one of the inline schemas. ', path: ['paths', '/resource', 'post', 'requestBody', 'content', 'application/vnd.atlas.2024-01-01+json'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, @@ -194,7 +194,7 @@ testRule('xgen-IPA-106-create-method-request-has-no-readonly-fields', [ message: 'The Create method request object must not include input fields (readOnly properties). Found readOnly property at: user.userId. ', path: ['paths', '/resource', 'post', 'requestBody', 'content', 'application/vnd.atlas.2023-01-01+json'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, @@ -227,7 +227,7 @@ testRule('xgen-IPA-106-create-method-request-has-no-readonly-fields', [ message: 'The Create method request object must not include input fields (readOnly properties). Found readOnly property at: items.items.itemId. ', path: ['paths', '/resource', 'post', 'requestBody', 'content', 'application/vnd.atlas.2023-01-01+json'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA106CreateMethodResponseCodeIs201Created.test.js b/tools/spectral/ipa/__tests__/IPA106CreateMethodResponseCodeIs201Created.test.js index d9d8ecade9..0e6cc7570b 100644 --- a/tools/spectral/ipa/__tests__/IPA106CreateMethodResponseCodeIs201Created.test.js +++ b/tools/spectral/ipa/__tests__/IPA106CreateMethodResponseCodeIs201Created.test.js @@ -76,21 +76,21 @@ testRule('xgen-IPA-106-create-method-response-code-is-201', [ message: 'The Create method must return a 201 Created response. This method either lacks a 201 Created response or defines a different 2xx status code.', path: ['paths', '/resourceOne', 'post'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-106-create-method-response-code-is-201', message: 'The Create method must return a 201 Created response. This method either lacks a 201 Created response or defines a different 2xx status code.', path: ['paths', '/resourceTwo', 'post'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-106-create-method-response-code-is-201', message: 'The Create method must return a 201 Created response. This method either lacks a 201 Created response or defines a different 2xx status code.', path: ['paths', '/resourceThree', 'post'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA106CreateMethodShouldNotHaveQueryParameters.test.js b/tools/spectral/ipa/__tests__/IPA106CreateMethodShouldNotHaveQueryParameters.test.js index f49dffe0d4..665b11d240 100644 --- a/tools/spectral/ipa/__tests__/IPA106CreateMethodShouldNotHaveQueryParameters.test.js +++ b/tools/spectral/ipa/__tests__/IPA106CreateMethodShouldNotHaveQueryParameters.test.js @@ -122,19 +122,19 @@ testRule('xgen-IPA-106-create-method-should-not-have-query-parameters', [ code: 'xgen-IPA-106-create-method-should-not-have-query-parameters', message: 'Create operations should not have query parameters. Found [filter]. ', path: ['paths', '/resource', 'post'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-106-create-method-should-not-have-query-parameters', message: 'Create operations should not have query parameters. Found [query-param]. ', path: ['paths', '/resourceTwo', 'post'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-106-create-method-should-not-have-query-parameters', message: 'Create operations should not have query parameters. Found [query-param-2]. ', path: ['paths', '/resourceTwo', 'post'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA109EachCustomMethodMustBeGetOrPost.test.js b/tools/spectral/ipa/__tests__/IPA109EachCustomMethodMustBeGetOrPost.test.js index f05a50cc62..893d046239 100644 --- a/tools/spectral/ipa/__tests__/IPA109EachCustomMethodMustBeGetOrPost.test.js +++ b/tools/spectral/ipa/__tests__/IPA109EachCustomMethodMustBeGetOrPost.test.js @@ -95,49 +95,49 @@ testRule('xgen-IPA-109-custom-method-must-be-GET-or-POST', [ code: 'xgen-IPA-109-custom-method-must-be-GET-or-POST', message: 'The HTTP method for custom methods must be GET or POST.', path: ['paths', '/a/{exampleId}:method'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-109-custom-method-must-be-GET-or-POST', message: 'The HTTP method for custom methods must be GET or POST.', path: ['paths', '/a:method'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-109-custom-method-must-be-GET-or-POST', message: 'The HTTP method for custom methods must be GET or POST.', path: ['paths', '/b/{exampleId}:method'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-109-custom-method-must-be-GET-or-POST', message: 'The HTTP method for custom methods must be GET or POST.', path: ['paths', '/b:method'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-109-custom-method-must-be-GET-or-POST', message: 'The HTTP method for custom methods must be GET or POST.', path: ['paths', '/c/{exampleId}:method'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-109-custom-method-must-be-GET-or-POST', message: 'The HTTP method for custom methods must be GET or POST.', path: ['paths', '/c:method'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-109-custom-method-must-be-GET-or-POST', message: 'The HTTP method for custom methods must be GET or POST.', path: ['paths', '/d/{exampleId}:method'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-109-custom-method-must-be-GET-or-POST', message: 'The HTTP method for custom methods must be GET or POST.', path: ['paths', '/d:method'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA109EachCustomMethodMustUseCamelCase.test.js b/tools/spectral/ipa/__tests__/IPA109EachCustomMethodMustUseCamelCase.test.js index 70f4895936..eb33ec292f 100644 --- a/tools/spectral/ipa/__tests__/IPA109EachCustomMethodMustUseCamelCase.test.js +++ b/tools/spectral/ipa/__tests__/IPA109EachCustomMethodMustUseCamelCase.test.js @@ -47,37 +47,37 @@ testRule('xgen-IPA-109-custom-method-must-use-camel-case', [ code: 'xgen-IPA-109-custom-method-must-use-camel-case', message: 'MethodName must use camelCase format.', path: ['paths', '/a/{exampleId}:MethodName'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-109-custom-method-must-use-camel-case', message: 'MethodName must use camelCase format.', path: ['paths', '/a:MethodName'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-109-custom-method-must-use-camel-case', message: 'method_name must use camelCase format.', path: ['paths', '/a/{exampleId}:method_name'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-109-custom-method-must-use-camel-case', message: 'method_name must use camelCase format.', path: ['paths', '/a:method_name'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-109-custom-method-must-use-camel-case', message: 'Custom method name cannot be empty or blank.', path: ['paths', '/a/{exampleId}:'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-109-custom-method-must-use-camel-case', message: 'Custom method name cannot be empty or blank.', path: ['paths', '/a:'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA123EachEnumValueMustBeUpperSnakeCase.test.js b/tools/spectral/ipa/__tests__/IPA123EachEnumValueMustBeUpperSnakeCase.test.js index 5c84c65f84..72fe3e429a 100644 --- a/tools/spectral/ipa/__tests__/IPA123EachEnumValueMustBeUpperSnakeCase.test.js +++ b/tools/spectral/ipa/__tests__/IPA123EachEnumValueMustBeUpperSnakeCase.test.js @@ -98,25 +98,25 @@ testRule('xgen-IPA-123-enum-values-must-be-upper-snake-case', [ code: 'xgen-IPA-123-enum-values-must-be-upper-snake-case', message: 'enum[0]:exampleA enum value must be UPPER_SNAKE_CASE. ', path: ['components', 'schemas', 'SchemaName', 'properties', 'exampleProperty'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-123-enum-values-must-be-upper-snake-case', message: 'enum[1]:exampleB enum value must be UPPER_SNAKE_CASE. ', path: ['components', 'schemas', 'SchemaName', 'properties', 'exampleProperty'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-123-enum-values-must-be-upper-snake-case', message: 'enum[0]:exampleA enum value must be UPPER_SNAKE_CASE. ', path: ['components', 'schemas', 'SchemaName2', 'properties', 'exampleProperty'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-123-enum-values-must-be-upper-snake-case', message: 'enum[1]:exampleB enum value must be UPPER_SNAKE_CASE. ', path: ['components', 'schemas', 'SchemaName2', 'properties', 'exampleProperty'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, @@ -168,13 +168,13 @@ testRule('xgen-IPA-123-enum-values-must-be-upper-snake-case', [ code: 'xgen-IPA-123-enum-values-must-be-upper-snake-case', message: 'enum[0]:exampleA enum value must be UPPER_SNAKE_CASE. ', path: ['components', 'schemas', 'SchemaName'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-123-enum-values-must-be-upper-snake-case', message: 'enum[1]:exampleB enum value must be UPPER_SNAKE_CASE. ', path: ['components', 'schemas', 'SchemaName'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, @@ -244,13 +244,13 @@ testRule('xgen-IPA-123-enum-values-must-be-upper-snake-case', [ code: 'xgen-IPA-123-enum-values-must-be-upper-snake-case', message: 'enum[0]:exampleA enum value must be UPPER_SNAKE_CASE. ', path: ['paths', '/a/{exampleId}', 'get', 'parameters', '0', 'schema'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, { code: 'xgen-IPA-123-enum-values-must-be-upper-snake-case', message: 'enum[1]:exampleB enum value must be UPPER_SNAKE_CASE. ', path: ['paths', '/a/{exampleId}', 'get', 'parameters', '0', 'schema'], - severity: DiagnosticSeverity.Warning, + severity: DiagnosticSeverity.Error, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA125OneOfMustHaveDiscriminator.test.js b/tools/spectral/ipa/__tests__/IPA125OneOfMustHaveDiscriminator.test.js index 8a3e411574..79a8f074e4 100644 --- a/tools/spectral/ipa/__tests__/IPA125OneOfMustHaveDiscriminator.test.js +++ b/tools/spectral/ipa/__tests__/IPA125OneOfMustHaveDiscriminator.test.js @@ -79,7 +79,7 @@ testRule('xgen-IPA-125-oneOf-must-have-discriminator', [ message: 'The discriminator mapping must match the oneOf references. Unmatched Discriminator mappings with oneOf references: #/components/schemas/Bird', path: ['components', 'schemas', 'Animal'], - severity: DiagnosticSeverity.Error, + severity: DiagnosticSeverity.Warning, }, ], }, @@ -100,7 +100,7 @@ testRule('xgen-IPA-125-oneOf-must-have-discriminator', [ code: 'xgen-IPA-125-oneOf-must-have-discriminator', message: 'The schema has oneOf but no discriminator property.', path: ['components', 'schemas', 'Animal'], - severity: DiagnosticSeverity.Error, + severity: DiagnosticSeverity.Warning, }, ], }, @@ -122,7 +122,7 @@ testRule('xgen-IPA-125-oneOf-must-have-discriminator', [ code: 'xgen-IPA-125-oneOf-must-have-discriminator', message: 'Discriminator property is not an object.', path: ['components', 'schemas', 'Animal'], - severity: DiagnosticSeverity.Error, + severity: DiagnosticSeverity.Warning, }, ], }, @@ -149,7 +149,7 @@ testRule('xgen-IPA-125-oneOf-must-have-discriminator', [ code: 'xgen-IPA-125-oneOf-must-have-discriminator', message: 'Discriminator has no propertyName defined.', path: ['components', 'schemas', 'Animal'], - severity: DiagnosticSeverity.Error, + severity: DiagnosticSeverity.Warning, }, ], }, @@ -173,7 +173,7 @@ testRule('xgen-IPA-125-oneOf-must-have-discriminator', [ code: 'xgen-IPA-125-oneOf-must-have-discriminator', message: 'Discriminator must have a mapping object.', path: ['components', 'schemas', 'Animal'], - severity: DiagnosticSeverity.Error, + severity: DiagnosticSeverity.Warning, }, ], }, diff --git a/tools/spectral/ipa/__tests__/IPA125OneOfNoBaseTypes.test.js b/tools/spectral/ipa/__tests__/IPA125OneOfNoBaseTypes.test.js index 76513b9096..401a2a7996 100644 --- a/tools/spectral/ipa/__tests__/IPA125OneOfNoBaseTypes.test.js +++ b/tools/spectral/ipa/__tests__/IPA125OneOfNoBaseTypes.test.js @@ -72,7 +72,7 @@ testRule('xgen-IPA-125-oneOf-no-base-types', [ code: 'xgen-IPA-125-oneOf-no-base-types', message: 'oneOf should not contain base types like integer, number, string, or boolean.', path: ['components', 'schemas', 'MixedType'], - severity: DiagnosticSeverity.Error, + severity: DiagnosticSeverity.Warning, }, ], }, @@ -93,7 +93,7 @@ testRule('xgen-IPA-125-oneOf-no-base-types', [ code: 'xgen-IPA-125-oneOf-no-base-types', message: 'oneOf should not contain base types like integer, number, string, or boolean.', path: ['components', 'schemas', 'BaseTypes'], - severity: DiagnosticSeverity.Error, + severity: DiagnosticSeverity.Warning, }, ], }, diff --git a/tools/spectral/ipa/__tests__/__helpers__/testRule.js b/tools/spectral/ipa/__tests__/__helpers__/testRule.js index d3cc2e8240..06e369e74d 100644 --- a/tools/spectral/ipa/__tests__/__helpers__/testRule.js +++ b/tools/spectral/ipa/__tests__/__helpers__/testRule.js @@ -26,6 +26,7 @@ export default (ruleName, tests) => { expect(error.code).toEqual(testCase.errors[index].code); expect(error.message).toMatch(testCase.errors[index].message); expect(error.path).toEqual(testCase.errors[index].path); + expect(error.severity).toEqual(testCase.errors[index].severity); }); }); }