Template support for input parameters #4

Merged
javier merged 81 commits from feature/arguments-templating into main 2025-02-17 22:11:06 +00:00
3 changed files with 58 additions and 0 deletions
Showing only changes of commit 6938b358e1 - Show all commits

View File

@ -0,0 +1,9 @@
import Foundation
protocol FileServicing {
// MARK: Properties
var currentFolder: URL { get async }
}

View File

@ -0,0 +1,27 @@
import Foundation
struct FileService: FileServicing {
// MARK: Properties
private let fileManager: FileManager
// MARK: Initialisers
init(fileManager: FileManager = .default) {
self.fileManager = fileManager
}
// MARK: Computed
var currentFolder: URL {
get async {
if #available(macOS 13.0, *) {
.init(filePath: fileManager.currentDirectoryPath)
} else {
.init(fileURLWithPath: fileManager.currentDirectoryPath)
}
}
}
}

View File

@ -0,0 +1,22 @@
import Testing
@testable import ColibriLibrary
struct FileServiceTests {
// MARK: Properties tests
@Test("Test the file service provides a current folder URL")
func currentFolder() async {
// GIVEN
let service = FileService()
// WHEN
let url = await service.currentFolder
// THEN
#expect(url.path() == "/private/tmp")
#expect(url.isFileURL == true)
}
}