From 63a1e3dc6388099774ce42a3273cc5faa98c5edf Mon Sep 17 00:00:00 2001 From: Honza Dvorsky Date: Sun, 9 Feb 2025 22:08:09 +0100 Subject: [PATCH 1/2] [Bug] Exclude webhooks when filter is provided --- .../Hooks/FilteredDocument.swift | 3 +++ .../Hooks/Test_FilteredDocument.swift | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/Sources/_OpenAPIGeneratorCore/Hooks/FilteredDocument.swift b/Sources/_OpenAPIGeneratorCore/Hooks/FilteredDocument.swift index 613aa26d..66a9b5e1 100644 --- a/Sources/_OpenAPIGeneratorCore/Hooks/FilteredDocument.swift +++ b/Sources/_OpenAPIGeneratorCore/Hooks/FilteredDocument.swift @@ -128,6 +128,9 @@ struct FilteredDocumentBuilder { } } filteredDocument.components = components + // Always remove webhooks, as they may contain references to schemas that were not included. + // Webhooks are not supported for filtering, so whenever a filter is used, all webhooks are excluded. + filteredDocument.webhooks = [:] return filteredDocument } diff --git a/Tests/OpenAPIGeneratorCoreTests/Hooks/Test_FilteredDocument.swift b/Tests/OpenAPIGeneratorCoreTests/Hooks/Test_FilteredDocument.swift index 5e86e060..2572b2cd 100644 --- a/Tests/OpenAPIGeneratorCoreTests/Hooks/Test_FilteredDocument.swift +++ b/Tests/OpenAPIGeneratorCoreTests/Hooks/Test_FilteredDocument.swift @@ -75,6 +75,13 @@ final class Test_FilteredDocument: XCTestCase { $ref: '#/components/schemas/B' Empty: description: success + webhooks: + my-webhook: + post: + description: Webhook + responses: + '200': + description: OK """ let document = try YAMLDecoder().decode(OpenAPI.Document.self, from: documentYAML) assert(filtering: document, filter: DocumentFilter(), hasPaths: [], hasOperations: [], hasSchemas: []) @@ -192,5 +199,12 @@ final class Test_FilteredDocument: XCTestCase { file: file, line: line ) + XCTAssertUnsortedEqual( + filteredDocument.webhooks.keys, + [], + "Webhooks don't match", + file: file, + line: line + ) } } From 6b6ff1ac338468986476b6a2760e7be6369cd1f0 Mon Sep 17 00:00:00 2001 From: Honza Dvorsky Date: Sun, 9 Feb 2025 22:11:33 +0100 Subject: [PATCH 2/2] Fix soundness format --- .../Hooks/Test_FilteredDocument.swift | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Tests/OpenAPIGeneratorCoreTests/Hooks/Test_FilteredDocument.swift b/Tests/OpenAPIGeneratorCoreTests/Hooks/Test_FilteredDocument.swift index 2572b2cd..046ed929 100644 --- a/Tests/OpenAPIGeneratorCoreTests/Hooks/Test_FilteredDocument.swift +++ b/Tests/OpenAPIGeneratorCoreTests/Hooks/Test_FilteredDocument.swift @@ -199,12 +199,6 @@ final class Test_FilteredDocument: XCTestCase { file: file, line: line ) - XCTAssertUnsortedEqual( - filteredDocument.webhooks.keys, - [], - "Webhooks don't match", - file: file, - line: line - ) + XCTAssertUnsortedEqual(filteredDocument.webhooks.keys, [], "Webhooks don't match", file: file, line: line) } }