From 9ca1a469b4b36f60d3ccc4ce78f204f4b3cc915b Mon Sep 17 00:00:00 2001 From: jcesarmobile Date: Wed, 17 Dec 2025 14:44:41 +0100 Subject: [PATCH 1/2] fix: don't add test target if there are no tests --- .../PackageFileGenerator.swift | 20 +++++++++++++------ Sources/CommandLineTool/cap2spm.swift | 2 +- .../PackageFileGenerator.swift | 2 +- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/Sources/CapacitorPluginTools/PackageFileGenerator.swift b/Sources/CapacitorPluginTools/PackageFileGenerator.swift index ebe3bae..43a219f 100644 --- a/Sources/CapacitorPluginTools/PackageFileGenerator.swift +++ b/Sources/CapacitorPluginTools/PackageFileGenerator.swift @@ -3,11 +3,22 @@ import Foundation public class PackageFileGenerator { let packageName: String let targetName: String + let hasTests: Bool let capRepoName = "capacitor-swift-pm" let capLocation = "https://github.com/ionic-team/capacitor-swift-pm.git" let capVersion = "8.0.0" var packageText: String { + var hasTestsText = "" + if hasTests { + hasTestsText = """ + , + .testTarget( + name: "\(targetName)Tests", + dependencies: ["\(targetName)"], + path: "ios/Tests/\(targetName)Tests") + """ + } return """ // swift-tools-version: 5.9 import PackageDescription @@ -30,19 +41,16 @@ public class PackageFileGenerator { .product(name: "Capacitor", package: "\(capRepoName)"), .product(name: "Cordova", package: "\(capRepoName)") ], - path: "ios/Sources/\(targetName)"), - .testTarget( - name: "\(targetName)Tests", - dependencies: ["\(targetName)"], - path: "ios/Tests/\(targetName)Tests") + path: "ios/Sources/\(targetName)")\(hasTestsText) ] ) """ } - public init(packageName: String, targetName: String) { + public init(packageName: String, targetName: String, hasTests: Bool) { self.packageName = packageName self.targetName = targetName + self.hasTests = hasTests } public func generateFile(at fileURL: URL) throws { diff --git a/Sources/CommandLineTool/cap2spm.swift b/Sources/CommandLineTool/cap2spm.swift index 617a2a5..8726096 100644 --- a/Sources/CommandLineTool/cap2spm.swift +++ b/Sources/CommandLineTool/cap2spm.swift @@ -50,7 +50,7 @@ struct Cap2SPM: ParsableCommand { try? modifyTestsFile(at: swiftTestsFileURL, with: capPlugin.identifier) } - let packageGenerator = PackageFileGenerator(packageName: podspec.podName, targetName: capPlugin.identifier) + let packageGenerator = PackageFileGenerator(packageName: podspec.podName, targetName: capPlugin.identifier, hasTests: swiftTestsFileURL != nil) try packageGenerator.generateFile(at: podspecFileURL) diff --git a/Tests/CapacitorPluginToolsTests/PackageFileGenerator.swift b/Tests/CapacitorPluginToolsTests/PackageFileGenerator.swift index 9db058b..0ad3071 100644 --- a/Tests/CapacitorPluginToolsTests/PackageFileGenerator.swift +++ b/Tests/CapacitorPluginToolsTests/PackageFileGenerator.swift @@ -6,7 +6,7 @@ struct PackageFileGeneratorTests { let packageFileGenerator: PackageFileGenerator init() { - packageFileGenerator = PackageFileGenerator(packageName: "CapacitorAppPlugin", targetName: "AppPlugin") + packageFileGenerator = PackageFileGenerator(packageName: "CapacitorAppPlugin", targetName: "AppPlugin", hasTests: true) } @Test("Generates expected Package.swift Text") From 29da7d241da0bc80038aea6ac501c81e42d88a79 Mon Sep 17 00:00:00 2001 From: jcesarmobile Date: Thu, 18 Dec 2025 16:31:35 +0100 Subject: [PATCH 2/2] rename variable --- Sources/CapacitorPluginTools/PackageFileGenerator.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sources/CapacitorPluginTools/PackageFileGenerator.swift b/Sources/CapacitorPluginTools/PackageFileGenerator.swift index 43a219f..2a099e6 100644 --- a/Sources/CapacitorPluginTools/PackageFileGenerator.swift +++ b/Sources/CapacitorPluginTools/PackageFileGenerator.swift @@ -9,9 +9,9 @@ public class PackageFileGenerator { let capVersion = "8.0.0" var packageText: String { - var hasTestsText = "" + var testTargetText = "" if hasTests { - hasTestsText = """ + testTargetText = """ , .testTarget( name: "\(targetName)Tests", @@ -41,7 +41,7 @@ public class PackageFileGenerator { .product(name: "Capacitor", package: "\(capRepoName)"), .product(name: "Cordova", package: "\(capRepoName)") ], - path: "ios/Sources/\(targetName)")\(hasTestsText) + path: "ios/Sources/\(targetName)")\(testTargetText) ] ) """