Skip to content

Commit 3dbde14

Browse files
Support possible values inside property enums. (#1041)
With this change enum values that appear in the Properties section will render the allowed values they support under the enum type. This was being rendered before and was removed in [a08f470](a08f470) rdar://136542713
1 parent f66f704 commit 3dbde14

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

Sources/SwiftDocC/Model/Rendering/RenderNodeTranslator.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1928,6 +1928,9 @@ public struct RenderNodeTranslator: SemanticVisitor {
19281928
if let constraint = symbol.maximumLength {
19291929
attributes.append(RenderAttribute.maximumLength(String(constraint)))
19301930
}
1931+
if let constraint = symbol.allowedValues {
1932+
attributes.append(RenderAttribute.allowedValues(constraint.map { String($0) } ))
1933+
}
19311934
if let constraint = symbol.typeDetails, constraint.count > 0 {
19321935
// Pull out the base-type details.
19331936
typeDetails = constraint.filter { $0.baseType != nil }

Tests/SwiftDocCTests/Model/SemaToRenderNodeDictionaryDataTests.swift

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,8 +203,16 @@ class SemaToRenderNodeDictionaryDataTests: XCTestCase {
203203
XCTAssertEqual(genreProperty.name, "genre")
204204
XCTAssertTrue(genreProperty.readOnly ?? false)
205205
attributeTitles = genreProperty.attributes?.map{$0.title.lowercased()}.sorted() ?? []
206-
XCTAssertEqual(attributeTitles, ["default value"])
207-
genreProperty.attributes?.forEach { attribute in
206+
XCTAssertEqual(attributeTitles, ["default value", "possible values"])
207+
let genrePropertyAttributes = try XCTUnwrap(genreProperty.attributes)
208+
let genrePropertyAllowedValues = genrePropertyAttributes.filter {
209+
switch $0 {
210+
case .allowedValues(_): return true
211+
default: return false
212+
}
213+
}
214+
XCTAssertEqual(genrePropertyAllowedValues.count, 1)
215+
genrePropertyAllowedValues.forEach { attribute in
208216
if case let .allowedValues(values) = attribute {
209217
XCTAssertEqual(values.count, 3)
210218
XCTAssertEqual(values[0], "Classic Rock")

0 commit comments

Comments
 (0)