Skip to content

Commit a85c614

Browse files
authored
Create file URLs for bundle files in TestFileSystem (#661)
Also, create file URL for baseURL fallback for DiagnosticConsoleWriter
1 parent 6a7e148 commit a85c614

File tree

3 files changed

+27
-2
lines changed

3 files changed

+27
-2
lines changed

Sources/SwiftDocCUtilities/Action/Actions/Convert/ConvertAction.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ public struct ConvertAction: Action, RecreatingContext {
152152
engine.add(
153153
DiagnosticConsoleWriter(
154154
formattingOptions: formattingOptions,
155-
baseURL: documentationBundleURL ?? URL(string: fileManager.currentDirectoryPath)
155+
baseURL: documentationBundleURL ?? URL(fileURLWithPath: fileManager.currentDirectoryPath)
156156
)
157157
)
158158
if let diagnosticFilePath = diagnosticFilePath {

Tests/SwiftDocCUtilitiesTests/Utility/TestFileSystem.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ class TestFileSystem: FileManagerProtocol, DocumentationWorkspaceDataProvider {
8282
for folder in folders {
8383
let files = try addFolder(folder)
8484
if let info = folder.recursiveContent.mapFirst(where: { $0 as? InfoPlist }) {
85-
let files = files.filter({ $0.hasPrefix(folder.absoluteURL.path) }).compactMap({ URL(string: $0) })
85+
let files = files.filter({ $0.hasPrefix(folder.absoluteURL.path) }).compactMap({ URL(fileURLWithPath: $0) })
8686

8787
let markupFiles = files.filter({ DocumentationBundleFileTypes.isMarkupFile($0) })
8888
let miscFiles = files.filter({ !DocumentationBundleFileTypes.isMarkupFile($0) })

Tests/SwiftDocCUtilitiesTests/Utility/TestFileSystemTests.swift

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,4 +259,29 @@ class TestFileSystemTests: XCTestCase {
259259
XCTAssertFalse(fs.contentsEqual(atPath: "/main/test.txt", andPath: "/main/notclone.txt"))
260260
XCTAssertFalse(fs.contentsEqual(atPath: "/main/test.txt", andPath: "/main/missing.txt"))
261261
}
262+
263+
func testBundleUsesFileURLs() throws {
264+
let emptySymbolGraphData = try JSONEncoder().encode(makeSymbolGraph(moduleName: "Something"))
265+
266+
// A docc catalog with an article, a resource, an Info.plist file, and a symbol graph file
267+
let folders = Folder(name: "something.docc", content: [
268+
TextFile(name: "article.md", utf8Content: ""),
269+
DataFile(name: "image.png", data: Data()),
270+
InfoPlist(displayName: "unit-test", identifier: "com.example"),
271+
DataFile(name: "Something.symbols.json", data: emptySymbolGraphData)
272+
])
273+
let fs = try TestFileSystem(folders: [folders])
274+
275+
let bundles = try fs.bundles()
276+
XCTAssertEqual(bundles.count, 1)
277+
278+
let bundle = try XCTUnwrap(bundles.first)
279+
XCTAssertFalse(bundle.markupURLs.isEmpty)
280+
XCTAssertFalse(bundle.miscResourceURLs.isEmpty)
281+
XCTAssertFalse(bundle.symbolGraphURLs.isEmpty)
282+
283+
XCTAssert(bundle.markupURLs.allSatisfy(\.isFileURL))
284+
XCTAssert(bundle.miscResourceURLs.allSatisfy(\.isFileURL))
285+
XCTAssert(bundle.symbolGraphURLs.allSatisfy(\.isFileURL))
286+
}
262287
}

0 commit comments

Comments
 (0)