From 3139bfc8118c479e4ff91577c63520f6e869ed9f Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Wed, 19 Feb 2025 01:07:25 +0100 Subject: [PATCH] Renamed the OutdatedDependenciesTask task in the library target as UpdateDependenciesTask and also, added support for the "checkOutdated" flag to its "callAsFunction(at: checkOutdated: )" function. --- ...ask.swift => UpdateDependenciesTask.swift} | 10 +++++--- ...wift => UpdateDependenciesTaskTests.swift} | 25 +++++++++++-------- 2 files changed, 21 insertions(+), 14 deletions(-) rename Library/Sources/Public/Tasks/{OutdatedDependenciesTask.swift => UpdateDependenciesTask.swift} (71%) rename Test/Sources/Cases/Public/Tasks/{OutdatedDependenciesTaskTests.swift => UpdateDependenciesTaskTests.swift} (57%) diff --git a/Library/Sources/Public/Tasks/OutdatedDependenciesTask.swift b/Library/Sources/Public/Tasks/UpdateDependenciesTask.swift similarity index 71% rename from Library/Sources/Public/Tasks/OutdatedDependenciesTask.swift rename to Library/Sources/Public/Tasks/UpdateDependenciesTask.swift index 38a33de..e404b6b 100644 --- a/Library/Sources/Public/Tasks/OutdatedDependenciesTask.swift +++ b/Library/Sources/Public/Tasks/UpdateDependenciesTask.swift @@ -1,6 +1,6 @@ import Foundation -public struct OutdatedDependenciesTask { +public struct UpdateDependenciesTask { // MARK: Properties @@ -14,7 +14,7 @@ public struct OutdatedDependenciesTask { // MARK: Functions - public func callAsFunction(at location: URL? = nil) async throws (TerminalServiceError) { + public func callAsFunction(at location: URL? = nil, checkOutdated: Bool = false) async throws (TerminalServiceError) { let executableURL = URL(at: "/usr/bin/swift") var arguments: [String] = ["package", "update"] @@ -23,8 +23,10 @@ public struct OutdatedDependenciesTask { arguments.append(contentsOf: ["--package-path", location.pathString]) } - arguments.append("--dry-run") - + if checkOutdated { + arguments.append("--dry-run") + } + try await terminalService.run(executableURL, arguments: arguments) } diff --git a/Test/Sources/Cases/Public/Tasks/OutdatedDependenciesTaskTests.swift b/Test/Sources/Cases/Public/Tasks/UpdateDependenciesTaskTests.swift similarity index 57% rename from Test/Sources/Cases/Public/Tasks/OutdatedDependenciesTaskTests.swift rename to Test/Sources/Cases/Public/Tasks/UpdateDependenciesTaskTests.swift index b79a211..6208277 100644 --- a/Test/Sources/Cases/Public/Tasks/OutdatedDependenciesTaskTests.swift +++ b/Test/Sources/Cases/Public/Tasks/UpdateDependenciesTaskTests.swift @@ -3,23 +3,28 @@ import Testing @testable import ColibriLibrary -struct OutdatedDependenciesTaskTests { +struct UpdateDependenciesTaskTests { - @Test(arguments: [nil, URL.someCurrentFolder]) - func task(at location: URL?) async throws { + @Test(arguments: [nil, URL.someCurrentFolder], [false, true]) + func task(at location: URL?, checkOutdated: Bool) async throws { // GIVEN let terminalService = TerminalServiceSpy() - let task = OutdatedDependenciesTask(terminalService: terminalService) + let task = UpdateDependenciesTask(terminalService: terminalService) // WHEN - try await task(at: location) + try await task(at: location, checkOutdated: checkOutdated) // THEN let executableURL = URL(at: "/usr/bin/swift") - let arguments = if let location { - ["package", "update", "--package-path", location.pathString, "--dry-run"] + + var arguments = if let location { + ["package", "update", "--package-path", location.pathString] } else { - ["package", "update", "--dry-run"] + ["package", "update"] + } + + if checkOutdated { + arguments.append("--dry-run") } #expect(terminalService.actions.count == 1) @@ -30,12 +35,12 @@ struct OutdatedDependenciesTaskTests { func task(at location: URL?, throws error: TerminalServiceError) async throws { // GIVEN let terminalService = TerminalServiceMock(action: .error(error)) - let task = BuildProjectTask(terminalService: terminalService) + let task = UpdateDependenciesTask(terminalService: terminalService) // WHEN // THEN await #expect(throws: error) { - try await task(at: location) + try await task(at: location, checkOutdated: .random()) } }