From 3d96d38aaabfe389ce5aa923e59843b2a4dbeab0 Mon Sep 17 00:00:00 2001 From: Oliwia Rogala Date: Fri, 21 Nov 2025 12:01:44 +0100 Subject: [PATCH] fix(ls): fix validation of writeOnly and readOnly --- .../services/validation/linter-functions.ts | 3 ++- .../oas/schema-read-only-write-only.yaml | 19 +++++++++++++++++++ packages/apidom-ls/test/validate.ts | 4 ++-- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/packages/apidom-ls/src/services/validation/linter-functions.ts b/packages/apidom-ls/src/services/validation/linter-functions.ts index dbc488801..58ca2565b 100644 --- a/packages/apidom-ls/src/services/validation/linter-functions.ts +++ b/packages/apidom-ls/src/services/validation/linter-functions.ts @@ -356,9 +356,10 @@ export const standardLinterfunctions: FunctionItem[] = [ const fields = keys.map((key) => element.get(key)).filter(Boolean); - if (fields.length === 0) { + if (fields.length !== keys.length) { return true; } + return !fields.every((field) => { const elValue = toValue(field); diff --git a/packages/apidom-ls/test/fixtures/validation/oas/schema-read-only-write-only.yaml b/packages/apidom-ls/test/fixtures/validation/oas/schema-read-only-write-only.yaml index 14832962d..37b5e940d 100644 --- a/packages/apidom-ls/test/fixtures/validation/oas/schema-read-only-write-only.yaml +++ b/packages/apidom-ls/test/fixtures/validation/oas/schema-read-only-write-only.yaml @@ -16,6 +16,9 @@ paths: application/json: schema: $ref: '#/components/schemas/PropertyToTest' + application/xml: + schema: + $ref: '#/components/schemas/PropertyToTestNoError' components: schemas: PropertyToTest: @@ -35,3 +38,19 @@ components: fieldDate: type: string format: date-time + PropertyToTestNoError: + type: object + required: + - id + - fieldname + - fieldDate + properties: + id: + type: string + format: uuid + readOnly: true + fieldname: + type: string + fieldDate: + type: string + format: date-time diff --git a/packages/apidom-ls/test/validate.ts b/packages/apidom-ls/test/validate.ts index 19008cfe9..397cbb536 100644 --- a/packages/apidom-ls/test/validate.ts +++ b/packages/apidom-ls/test/validate.ts @@ -5187,11 +5187,11 @@ describe('apidom-ls-validate', function () { range: { end: { character: 10, - line: 27, + line: 30, }, start: { character: 8, - line: 27, + line: 30, }, }, severity: 1,