@@ -13,7 +13,7 @@ import XCTest
13
13
@_spi ( ExternalLinks) @testable import SwiftDocC
14
14
15
15
class ExternalRenderNodeTests : XCTestCase {
16
- func generateExternalResover ( ) -> TestMultiResultExternalReferenceResolver {
16
+ func generateExternalResolver ( ) -> TestMultiResultExternalReferenceResolver {
17
17
let externalResolver = TestMultiResultExternalReferenceResolver ( )
18
18
externalResolver. bundleID = " com.test.external "
19
19
externalResolver. entitiesToReturn [ " /path/to/external/swiftArticle " ] = . success(
@@ -37,23 +37,32 @@ class ExternalRenderNodeTests: XCTestCase {
37
37
referencePath: " /path/to/external/swiftSymbol " ,
38
38
title: " SwiftSymbol " ,
39
39
kind: . class,
40
- language: . swift
40
+ language: . swift,
41
+ declarationFragments: . init( declarationFragments: [
42
+ . init( kind: . keyword, spelling: " class " , preciseIdentifier: nil ) ,
43
+ . init( kind: . text, spelling: " " , preciseIdentifier: nil ) ,
44
+ . init( kind: . identifier, spelling: " SwiftSymbol " , preciseIdentifier: nil )
45
+ ] )
41
46
)
42
47
)
43
48
externalResolver. entitiesToReturn [ " /path/to/external/objCSymbol " ] = . success(
44
49
. init(
45
50
referencePath: " /path/to/external/objCSymbol " ,
46
51
title: " ObjCSymbol " ,
47
52
kind: . function,
48
- language: . objectiveC
53
+ language: . objectiveC,
54
+ declarationFragments: . init( declarationFragments: [
55
+ . init( kind: . text, spelling: " - " , preciseIdentifier: nil ) ,
56
+ . init( kind: . identifier, spelling: " ObjCSymbol " , preciseIdentifier: nil ) ,
57
+ ] )
49
58
)
50
59
)
51
60
return externalResolver
52
61
}
53
62
54
63
func testExternalRenderNode( ) throws {
55
64
56
- let externalResolver = generateExternalResover ( )
65
+ let externalResolver = generateExternalResolver ( )
57
66
let ( _, bundle, context) = try testBundleAndContext (
58
67
copying: " MixedLanguageFramework " ,
59
68
externalResolvers: [ externalResolver. bundleID: externalResolver]
@@ -146,16 +155,18 @@ class ExternalRenderNodeTests: XCTestCase {
146
155
)
147
156
XCTAssertEqual ( swiftNavigatorExternalRenderNode. metadata. title, swiftTitle)
148
157
XCTAssertEqual ( swiftNavigatorExternalRenderNode. metadata. navigatorTitle, navigatorTitle)
158
+ XCTAssertEqual ( swiftNavigatorExternalRenderNode. metadata. fragments, fragments)
149
159
150
160
let objcNavigatorExternalRenderNode = try XCTUnwrap (
151
161
NavigatorExternalRenderNode ( renderNode: externalRenderNode, trait: . interfaceLanguage( " objc " ) )
152
162
)
153
163
XCTAssertEqual ( objcNavigatorExternalRenderNode. metadata. title, occTitle)
154
164
XCTAssertEqual ( objcNavigatorExternalRenderNode. metadata. navigatorTitle, occNavigatorTitle)
165
+ XCTAssertEqual ( objcNavigatorExternalRenderNode. metadata. fragments, occFragments)
155
166
}
156
167
157
168
func testNavigatorWithExternalNodes( ) throws {
158
- let externalResolver = generateExternalResover ( )
169
+ let externalResolver = generateExternalResolver ( )
159
170
let ( _, bundle, context) = try testBundleAndContext (
160
171
copying: " MixedLanguageFramework " ,
161
172
externalResolvers: [ externalResolver. bundleID: externalResolver]
@@ -204,14 +215,14 @@ class ExternalRenderNodeTests: XCTestCase {
204
215
let occExternalNodes = renderIndex. interfaceLanguages [ " occ " ] ? . first { $0. path == " /documentation/mixedlanguageframework " } ? . children? . filter { $0. path? . contains ( " /path/to/external " ) ?? false } ?? [ ]
205
216
XCTAssertEqual ( swiftExternalNodes. count, 2 )
206
217
XCTAssertEqual ( occExternalNodes. count, 2 )
207
- XCTAssertEqual ( swiftExternalNodes. map ( \. title) , [ " SwiftArticle " , " SwiftSymbol " ] )
208
- XCTAssertEqual ( occExternalNodes. map ( \. title) , [ " ObjCArticle " , " ObjCSymbol " ] )
218
+ XCTAssertEqual ( swiftExternalNodes. map ( \. title) , [ " SwiftArticle " , " class SwiftSymbol" ] )
219
+ XCTAssertEqual ( occExternalNodes. map ( \. title) , [ " ObjCArticle " , " - ObjCSymbol" ] )
209
220
XCTAssert ( swiftExternalNodes. allSatisfy ( \. isExternal) )
210
221
XCTAssert ( occExternalNodes. allSatisfy ( \. isExternal) )
211
222
}
212
223
213
224
func testNavigatorWithExternalNodesOnlyAddsCuratedNodesToNavigator( ) throws {
214
- let externalResolver = generateExternalResover ( )
225
+ let externalResolver = generateExternalResolver ( )
215
226
216
227
let ( _, bundle, context) = try testBundleAndContext (
217
228
copying: " MixedLanguageFramework " ,
@@ -265,7 +276,7 @@ class ExternalRenderNodeTests: XCTestCase {
265
276
XCTAssertEqual ( swiftExternalNodes. count, 1 )
266
277
XCTAssertEqual ( occExternalNodes. count, 1 )
267
278
XCTAssertEqual ( swiftExternalNodes. map ( \. title) , [ " SwiftArticle " ] )
268
- XCTAssertEqual ( occExternalNodes. map ( \. title) , [ " ObjCSymbol " ] )
279
+ XCTAssertEqual ( occExternalNodes. map ( \. title) , [ " - ObjCSymbol" ] )
269
280
XCTAssert ( swiftExternalNodes. allSatisfy ( \. isExternal) )
270
281
XCTAssert ( occExternalNodes. allSatisfy ( \. isExternal) )
271
282
}
0 commit comments