diff --git a/Tests/XcodeGenKitTests/PBXProjGeneratorTests.swift b/Tests/XcodeGenKitTests/PBXProjGeneratorTests.swift index 665ae2b8..2dc7f35c 100644 --- a/Tests/XcodeGenKitTests/PBXProjGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/PBXProjGeneratorTests.swift @@ -618,6 +618,44 @@ class PBXProjGeneratorTests: XCTestCase { try expect(testTarget?.frameworksBuildPhase()?.files?.count) == 1 try expect(testTarget?.frameworksBuildPhase()?.files?[0].platformFilter) == "ios" } + + $0.it("places resources before sources buildPhase") { + let directories = """ + Sources: + - MainScreen: + - Entities: + - file.swift + - image.jpg + """ + try createDirectories(directories) + let target1 = Target( + name: "TestAll", + type: .application, + platform: .iOS, + sources: ["Sources"], + putResourcesBeforeSourcesBuildPhase: true + ) + let target2 = Target( + name: "TestiOS", + type: .application, + platform: .iOS, + sources: ["Sources"], + putResourcesBeforeSourcesBuildPhase: false + ) + + let project = Project(basePath: directoryPath, name: "Test", targets: [target1, target2]) + + let pbxProj = try project.generatePbxProj() + + let targets = pbxProj.projects.first?.targets + try expect(targets?.count) == 2 + try expect(targets?.first?.buildPhases.first).to.beOfType(PBXResourcesBuildPhase.self) + try expect(targets?.first?.buildPhases.last).to.beOfType(PBXSourcesBuildPhase.self) + + try expect(targets?.last?.buildPhases.first).to.beOfType(PBXSourcesBuildPhase.self) + try expect(targets?.last?.buildPhases.last).to.beOfType(PBXResourcesBuildPhase.self) + } } } + } diff --git a/Tests/XcodeGenKitTests/SchemeGeneratorTests.swift b/Tests/XcodeGenKitTests/SchemeGeneratorTests.swift index 07f63a92..8c9c43f9 100644 --- a/Tests/XcodeGenKitTests/SchemeGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/SchemeGeneratorTests.swift @@ -479,6 +479,33 @@ class SchemeGeneratorTests: XCTestCase { try expect(xcscheme.testAction?.macroExpansion?.buildableName) == "MyApp.app" try expect(xcscheme.launchAction?.macroExpansion?.buildableName) == "MyApp.app" } + + $0.it("generates scheme with test target of local swift package") { + let targetScheme = TargetScheme( + testTargets: [Scheme.Test.TestTarget(targetReference: TestableTargetReference(name: "XcodeGenKitTests", location: .package("XcodeGen")))]) + let app = Target( + name: "MyApp", + type: .application, + platform: .iOS, + dependencies: [ + Dependency(type: .package(product: nil), reference: "XcodeGen") + ], + scheme: targetScheme + ) + let project = Project( + name: "ios_test", + targets: [app], + packages: ["XcodeGen": .local(path: "../", group: nil)] + ) + let xcodeProject = try project.generateXcodeProject() + let xcscheme = try unwrap(xcodeProject.sharedData?.schemes.first) + let buildableReference = try unwrap(xcscheme.testAction?.testables.first?.buildableReference) + + try expect(buildableReference.blueprintIdentifier) == "XcodeGenKitTests" + try expect(buildableReference.blueprintName) == "XcodeGenKitTests" + try expect(buildableReference.buildableName) == "XcodeGenKitTests" + try expect(buildableReference.referencedContainer) == "container:../" + } $0.it("allows to override test macroExpansion") { let app = Target(