From 837ca53ef2bc5ea572e1d180fc511df7edb5062b Mon Sep 17 00:00:00 2001 From: tcdsv Date: Mon, 5 Feb 2024 11:25:41 +0200 Subject: [PATCH 1/2] skip added required properties in the response-property-became-required check --- ...check-response-property-became-required.go | 4 + ...esponse_property_became_optional_base.yaml | 94 ++++++++++--------- 2 files changed, 53 insertions(+), 45 deletions(-) diff --git a/checker/check-response-property-became-required.go b/checker/check-response-property-became-required.go index 8f0981ef..e1684ce2 100644 --- a/checker/check-response-property-became-required.go +++ b/checker/check-response-property-became-required.go @@ -41,6 +41,10 @@ func ResponsePropertyBecameRequiredCheck(diffReport *diff.Diff, operationsSource if mediaTypeDiff.SchemaDiff.RequiredDiff != nil { for _, changedRequiredPropertyName := range mediaTypeDiff.SchemaDiff.RequiredDiff.Added { id := ResponsePropertyBecameRequiredId + if mediaTypeDiff.SchemaDiff.Base.Properties[changedRequiredPropertyName] == nil { + // added properties are processed by ResponseRequiredPropertyUpdatedCheck check + continue + } if mediaTypeDiff.SchemaDiff.Revision.Properties[changedRequiredPropertyName] == nil { // removed properties processed by the ResponseRequiredPropertyUpdatedCheck check continue diff --git a/data/checker/response_property_became_optional_base.yaml b/data/checker/response_property_became_optional_base.yaml index ce7a8b28..8720b98e 100644 --- a/data/checker/response_property_became_optional_base.yaml +++ b/data/checker/response_property_became_optional_base.yaml @@ -1,45 +1,49 @@ -openapi: 3.0.1 -info: - title: Tufin - version: "2.0" -servers: -- url: https://localhost:9080 -paths: - /api/v1.0/groups: - post: - operationId: createOneGroup - responses: - "200": - content: - application/json: - schema: - $ref: '#/components/schemas/GroupView' - description: OK - summary: Create One Project -components: - parameters: - groupId: - in: path - name: groupId - required: true - schema: - type: string - schemas: - GroupView: - type: object - properties: - data: - type: object - properties: - created: - type: string - format: date-time - readOnly: true - pattern: "^[a-z]+$" - id: - type: string - readOnly: true - name: - type: string - required: - - name \ No newline at end of file +openapi: 3.0.1 +info: + title: Tufin + version: "2.0" +servers: +- url: https://localhost:9080 +paths: + /api/v1.0/groups: + post: + operationId: createOneGroup + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/GroupView' + description: OK + summary: Create One Project +components: + parameters: + groupId: + in: path + name: groupId + required: true + schema: + type: string + schemas: + GroupView: + type: object + properties: + data: + type: object + properties: + created: + type: string + format: date-time + readOnly: true + pattern: "^[a-z]+$" + id: + type: string + readOnly: true + name: + type: string + required: + - name + location: + type: string + required: + - location \ No newline at end of file From 1f6944bb7321192192cdffb172f835f853c86f1e Mon Sep 17 00:00:00 2001 From: Reuven Date: Mon, 5 Feb 2024 18:04:03 +0200 Subject: [PATCH 2/2] same order and documentation for nested props --- checker/check-response-property-became-required.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/checker/check-response-property-became-required.go b/checker/check-response-property-became-required.go index e1684ce2..cf791119 100644 --- a/checker/check-response-property-became-required.go +++ b/checker/check-response-property-became-required.go @@ -40,7 +40,6 @@ func ResponsePropertyBecameRequiredCheck(diffReport *diff.Diff, operationsSource if mediaTypeDiff.SchemaDiff.RequiredDiff != nil { for _, changedRequiredPropertyName := range mediaTypeDiff.SchemaDiff.RequiredDiff.Added { - id := ResponsePropertyBecameRequiredId if mediaTypeDiff.SchemaDiff.Base.Properties[changedRequiredPropertyName] == nil { // added properties are processed by ResponseRequiredPropertyUpdatedCheck check continue @@ -49,6 +48,7 @@ func ResponsePropertyBecameRequiredCheck(diffReport *diff.Diff, operationsSource // removed properties processed by the ResponseRequiredPropertyUpdatedCheck check continue } + id := ResponsePropertyBecameRequiredId if mediaTypeDiff.SchemaDiff.Revision.Properties[changedRequiredPropertyName].Value.WriteOnly { id = ResponseWriteOnlyPropertyBecameRequiredId } @@ -73,17 +73,18 @@ func ResponsePropertyBecameRequiredCheck(diffReport *diff.Diff, operationsSource return } for _, changedRequiredPropertyName := range requiredDiff.Added { - id := ResponsePropertyBecameRequiredId if propertyDiff.Base.Properties[changedRequiredPropertyName] == nil { + // added properties are processed by ResponseRequiredPropertyUpdatedCheck check continue } - if propertyDiff.Base.Properties[changedRequiredPropertyName].Value.WriteOnly { - id = ResponseWriteOnlyPropertyBecameRequiredId - } if propertyDiff.Revision.Properties[changedRequiredPropertyName] == nil { // removed properties processed by the ResponseRequiredPropertyUpdatedCheck check continue } + id := ResponsePropertyBecameRequiredId + if propertyDiff.Base.Properties[changedRequiredPropertyName].Value.WriteOnly { + id = ResponseWriteOnlyPropertyBecameRequiredId + } result = append(result, ApiChange{ Id: id,