1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
/*
This source file is part of the Swift.org open source project
Copyright (c) 2024 Apple Inc. and the Swift project authors
Licensed under Apache License v2.0 with Runtime Library Exception
See https://swift.org/LICENSE.txt for license information
See https://swift.org/CONTRIBUTORS.txt for Swift project authors
*/
@testable import SwiftDocC
import XCTest
import SwiftDocCTestUtilities
import SymbolKit
extension XCTestCase {
/// Creates a test bundle for testing "Mentioned In" features.
func createMentionedInTestBundle() throws -> (DocumentationBundle, DocumentationContext) {
let exampleDocumentation = Folder(name: "MentionedIn.docc", content: [
JSONFile(name: "MentionedIn.symbols.json", content: makeSymbolGraph(
moduleName: "MentionedIn",
symbols: [
SymbolGraph.Symbol(
identifier: .init(precise: "MyClass", interfaceLanguage: "swift"),
names: .init(title: "MyClass", navigator: nil, subHeading: nil, prose: nil),
pathComponents: ["MyClass"],
docComment: nil,
accessLevel: .public,
kind: .init(parsedIdentifier: .class, displayName: "Class"),
mixins: [:]
),
SymbolGraph.Symbol(
identifier: .init(precise: "myFunction()", interfaceLanguage: "swift"),
names: .init(title: "myFunction()", navigator: nil, subHeading: nil, prose: nil),
pathComponents: ["MyClass", "myFunction()"],
docComment: nil,
accessLevel: .public,
kind: .init(parsedIdentifier: .func, displayName: "Function"),
mixins: [:]
)
]
)),
TextFile(name: "ArticleMentioningSymbol.md", utf8Content: """
# Article mentioning a symbol
In the abstract, ``MyClass``.
## Other mentions
Later, ``MyClass``.
"""),
TextFile(name: "APICollectionMentioningSybol.md", utf8Content: """
# An API Collection
In the abstract, ``MyClass``.
## Other mentions
Later, ``MyClass``.
This API Collection should not count as an article mention.
## Topics
### Things that don't count as mentions
Curation does not count as a significant "mention".
- ``MyClass``
"""),
])
let tempURL = try createTempFolder(content: [exampleDocumentation])
let (_, bundle, context) = try loadBundle(from: tempURL)
return (bundle, context)
}
}
|