Skip to content

Commit 63a1e3d

Browse files
committed
[Bug] Exclude webhooks when filter is provided
1 parent 1db77dd commit 63a1e3d

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

Sources/_OpenAPIGeneratorCore/Hooks/FilteredDocument.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,9 @@ struct FilteredDocumentBuilder {
128128
}
129129
}
130130
filteredDocument.components = components
131+
// Always remove webhooks, as they may contain references to schemas that were not included.
132+
// Webhooks are not supported for filtering, so whenever a filter is used, all webhooks are excluded.
133+
filteredDocument.webhooks = [:]
131134
return filteredDocument
132135
}
133136

Tests/OpenAPIGeneratorCoreTests/Hooks/Test_FilteredDocument.swift

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,13 @@ final class Test_FilteredDocument: XCTestCase {
7575
$ref: '#/components/schemas/B'
7676
Empty:
7777
description: success
78+
webhooks:
79+
my-webhook:
80+
post:
81+
description: Webhook
82+
responses:
83+
'200':
84+
description: OK
7885
"""
7986
let document = try YAMLDecoder().decode(OpenAPI.Document.self, from: documentYAML)
8087
assert(filtering: document, filter: DocumentFilter(), hasPaths: [], hasOperations: [], hasSchemas: [])
@@ -192,5 +199,12 @@ final class Test_FilteredDocument: XCTestCase {
192199
file: file,
193200
line: line
194201
)
202+
XCTAssertUnsortedEqual(
203+
filteredDocument.webhooks.keys,
204+
[],
205+
"Webhooks don't match",
206+
file: file,
207+
line: line
208+
)
195209
}
196210
}

0 commit comments

Comments
 (0)