import Foundation import Testing @testable import ColibriLibrary struct CreateFoldersTaskTests { // MARK: Properties private let spy = FileServiceSpy() // MARK: Functions tests @Test(arguments: [URL.someCurrentFolder, .someDotFolder, .someTildeFolder]) func createFolders(with rootFolder: URL) async throws { // GIVEN let folderApp = rootFolder.appendingPath("Sources/App") let folderAppInfrastructure = rootFolder.appendingPath("Sources/AppInfrastructure") let folderTestSources = rootFolder.appendingPath("Test/App/Sources") let folderTestCases = rootFolder.appendingPath("Test/App/Cases") let service = FileServiceMock( currentFolder: .someCurrentFolder, actions: [ .createFolder(folderApp), .createFolder(folderAppInfrastructure), .createFolder(folderTestSources), .createFolder(folderTestCases), ], spy: spy ) let createFolders = CreateFoldersTask(fileService: service) // WHEN try await createFolders(at: rootFolder) // THEN #expect(spy.actions[0] == .folderCreated(folderApp)) #expect(spy.actions[1] == .folderCreated(folderAppInfrastructure)) #expect(spy.actions[2] == .folderCreated(folderTestSources)) #expect(spy.actions[3] == .folderCreated(folderTestCases)) } }