diff --git a/CHANGELOG.md b/CHANGELOG.md index 130a70de1b1..1eecba037af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ Please, check out guidelines: https://keepachangelog.com/en/1.0.0/ - Adding generate command timer https://github.com/tuist/tuist/pull/335 by @kwridan - Support Scheme manifest with pre/post action https://github.com/tuist/tuist/pull/336 by @dangthaison91 +- Support local Scheme (not shared) flag https://github.com/tuist/tuist/pull/341 by @dangthaison91 ### Removed diff --git a/Tests/TuistGeneratorTests/Generator/ProjectGeneratorTests.swift b/Tests/TuistGeneratorTests/Generator/ProjectGeneratorTests.swift index 8dbc560dc2c..4dbdc64f9f3 100644 --- a/Tests/TuistGeneratorTests/Generator/ProjectGeneratorTests.swift +++ b/Tests/TuistGeneratorTests/Generator/ProjectGeneratorTests.swift @@ -52,10 +52,9 @@ final class ProjectGeneratorTests: XCTestCase { // Given let target = Target.test(name: "Target", platform: .iOS, product: .framework) let sharedScheme = Scheme.test(name: "Target-Scheme", shared: true, buildAction: BuildAction(targets: ["Target"])) - let localScheme = Scheme.test(name: "Target-Local", shared: false, buildAction: BuildAction(targets: ["Target"])) let targets = [target] - let project = Project.test(path: fileHandler.currentPath, name: "Project", targets: targets, schemes: [sharedScheme, localScheme]) + let project = Project.test(path: fileHandler.currentPath, name: "Project", targets: targets, schemes: [sharedScheme]) try fileHandler.touch(fileHandler.currentPath.appending(component: "Project.swift")) let cache = GraphLoaderCache() @@ -73,9 +72,33 @@ final class ProjectGeneratorTests: XCTestCase { // Then let schemesPath = got.path.appending(RelativePath("xcshareddata/xcschemes")) - let scheme = schemesPath.appending(component: "Target-Scheme.xcscheme") - XCTAssertTrue(fileHandler.exists(scheme)) + let targetScheme = schemesPath.appending(component: "Target-Scheme.xcscheme") + XCTAssertTrue(fileHandler.exists(targetScheme)) + } + + func test_generate_local_scheme() throws { + // Given + let target = Target.test(name: "Target", platform: .iOS, product: .framework) + let localScheme = Scheme.test(name: "Target-Local", shared: false, buildAction: BuildAction(targets: ["Target"])) + + let targets = [target] + let project = Project.test(path: fileHandler.currentPath, name: "Project", targets: targets, schemes: [localScheme]) + try fileHandler.touch(fileHandler.currentPath.appending(component: "Project.swift")) + + let cache = GraphLoaderCache() + cache.add(project: project) + let graph = Graph.test(entryPath: fileHandler.currentPath, + cache: cache, + entryNodes: [TargetNode(project: project, + target: target, + dependencies: [])]) + // When + let got = try subject.generate(project: project, + options: GenerationOptions(), + graph: graph) + + // Then let username = NSUserName() let userSchemesPath = got.path.appending(RelativePath("xcuserdata/\(username).xcuserdatad/xcschemes")) let userScheme = userSchemesPath.appending(component: "Target-Local.xcscheme")