File tree 2 files changed +40
-1
lines changed
Tests/SPMPackageEditorTests
2 files changed +40
-1
lines changed Original file line number Diff line number Diff line change @@ -344,7 +344,12 @@ final class PackageDependencyWriter: SyntaxRewriter {
344
344
let rightBrace = SyntaxFactory . makeRightSquareBracketToken (
345
345
leadingTrivia: [ . newlines( 1 ) , . spaces( 4 ) ] )
346
346
347
- return ExprSyntax ( node. addElement ( newDependencyElement)
347
+ let newElements = SyntaxFactory . makeArrayElementList (
348
+ node. elements. dropLast ( ) +
349
+ [ node. elements. last? . withTrailingComma ( SyntaxFactory . makeCommaToken ( ) ) ,
350
+ newDependencyElement] . compactMap { $0} )
351
+
352
+ return ExprSyntax ( node. withElements ( newElements)
348
353
. withRightSquare ( rightBrace) )
349
354
}
350
355
}
Original file line number Diff line number Diff line change @@ -233,4 +233,38 @@ final class AddPackageDependencyTests: XCTestCase {
233
233
)
234
234
""" )
235
235
}
236
+
237
+ func testAddPackageDependency7( ) throws {
238
+ let manifest = """
239
+ let package = Package(
240
+ name: " exec " ,
241
+ dependencies: [
242
+ .package(url: " https://github.com/foo/bar " , from: " 1.0.3 " )
243
+ ],
244
+ targets: [
245
+ .target(name: " exec " )
246
+ ]
247
+ )
248
+ """
249
+
250
+
251
+ let editor = try ManifestRewriter ( manifest)
252
+ try editor. addPackageDependency (
253
+ url: " https://github.com/foo/goo " ,
254
+ requirement: . upToNextMajor( " 1.0.1 " )
255
+ )
256
+
257
+ XCTAssertEqual ( editor. editedManifest, """
258
+ let package = Package(
259
+ name: " exec " ,
260
+ dependencies: [
261
+ .package(url: " https://github.com/foo/bar " , from: " 1.0.3 " ),
262
+ .package(url: " https://github.com/foo/goo " , from: " 1.0.1 " ),
263
+ ],
264
+ targets: [
265
+ .target(name: " exec " )
266
+ ]
267
+ )
268
+ """ )
269
+ }
236
270
}
You can’t perform that action at this time.
0 commit comments