-
-
Notifications
You must be signed in to change notification settings - Fork 506
/
generate.feature
185 lines (170 loc) · 11.1 KB
/
generate.feature
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
Feature: Generate a new project using Tuist
Scenario: The project is an iOS application with tests (ios_app_with_tests)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_tests into the working directory
Then tuist generates the project
Then I should be able to build the scheme App
Then I should be able to test the scheme AppTests
Then I should be able to test the scheme AppUITests
Then I should be able to build the scheme App_Manifest
Scenario: The project is an iOS application with frameworks and tests (ios_app_with_frameworks)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_frameworks into the working directory
Then tuist generates the project
Then I should be able to build the scheme App
Then I should be able to test the scheme AppTests
Then I should be able to test the scheme Framework1Tests
Then I should be able to build the scheme Framework2-iOS
Then I should be able to build the scheme Framework2-macOS
Then I should be able to test the scheme Framework2Tests
Then I should be able to build the scheme MainApp_Manifest
Then I should be able to build the scheme Framework1_Manifest
Then I should be able to build the scheme Framework2_Manifest
Then I should be able to build the scheme Framework1
Then the product 'Framework1.framework' with destination 'Debug-iphoneos' contains the Info.plist key 'Test'
Scenario: The project is an iOS application with headers (ios_app_with_headers)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_headers into the working directory
Then tuist generates the project
Then I should be able to build the scheme App
Then I should be able to test the scheme AppTests
Then I should be able to build the scheme Framework1-iOS
Then I should be able to build the scheme Framework1-macOS
Then I should be able to test the scheme Framework1Tests
Then I should be able to build the scheme MainApp_Manifest
Then I should be able to build the scheme Framework1_Manifest
Scenario: The project is a directory without valid manifest file (invalid_workspace_manifest_name)
Given that tuist is available
And I have a working directory
Then I copy the fixture invalid_workspace_manifest_name into the working directory
Then tuist generate yields error "Error: Manifest not found at path ${ARG_PATH}"
Scenario: The project is an iOS application with frameworks and tests (ios_app_with_static_libraries)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_static_libraries into the working directory
Then tuist generates the project
Then I should be able to build the scheme App
Then I should be able to test the scheme AppTests
Then I should be able to build the scheme A
Then I should be able to test the scheme ATests
Then I should be able to build the scheme B
Then I should be able to test the scheme BTests
Scenario: The project is an iOS application with frameworks and tests (ios_app_with_static_frameworks)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_static_frameworks into the working directory
Then tuist generates the project
Then I should be able to build the scheme App
Then I should be able to test the scheme AppTests
Then I should be able to build the scheme A
Then I should be able to test the scheme ATests
Then I should be able to build the scheme B
Then I should be able to test the scheme BTests
Scenario: The project is an iOS application with SDK dependencies (ios_app_with_sdk)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_sdk into the working directory
Then tuist generates the project
Then I should be able to build the scheme App
Then I should be able to test the scheme AppTests
Then I should be able to build the scheme MacFramework
Then I should be able to build the scheme Project_Manifest
Then I should be able to build the scheme StaticFramework
Then I should be able to build the scheme StaticFramework_Manifest
Then I should be able to test the scheme StaticFrameworkTests
Then I should be able to build the scheme TVFramework
Scenario: The project is an iOS application with a target dependency and transitive framework dependency (ios_app_with_transitive_framework)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_transitive_framework into the working directory
Then tuist generates the project
Then I should be able to build the scheme App
Then the product 'App.app' with destination 'Debug-iphoneos' contains the framework 'Framework1' with architecture 'arm64'
Then the product 'App.app' with destination 'Debug-iphoneos' contains the framework 'Framework2' without architecture 'x86'
Then I should be able to build the scheme Framework1-iOS
Then I should be able to build the scheme Framework1-macOS
Then I should be able to build the scheme Framework1Tests-iOS
Then I should be able to build the scheme Framework1Tests-macOS
Scenario: The project is an iOS application that has resources (ios_app_with_framework_and_resources)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_framework_and_resources into the working directory
Then tuist generates the project
Then I should be able to build the scheme App
Then the product 'App.app' with destination 'Debug-iphoneos' contains resource 'tuist.png'
Then the product 'App.app' with destination 'Debug-iphoneos' contains resource 'Examples/item.json'
Then the product 'App.app' with destination 'Debug-iphoneos' contains resource 'Examples/list.json'
Then the product 'App.app' with destination 'Debug-iphoneos' contains resource 'Assets.car'
Then the product 'App.app' with destination 'Debug-iphoneos' contains resource 'resource.txt'
Then the product 'App.app' with destination 'Debug-iphoneos' contains resource 'en.lproj/App.strings'
Then the product 'App.app' with destination 'Debug-iphoneos' contains resource 'en.lproj/Greetings.strings'
Then the product 'App.app' with destination 'Debug-iphoneos' contains resource 'fr.lproj/App.strings'
Then the product 'App.app' with destination 'Debug-iphoneos' contains resource 'fr.lproj/Greetings.strings'
Then the product 'App.app' with destination 'Debug-iphoneos' contains resource 'resource_without_extension'
Then the product 'App.app' with destination 'Debug-iphoneos' does not contain resource 'do_not_include.dat'
Then the product 'App.app' with destination 'Debug-iphoneos' contains resource 'StaticFrameworkResources.bundle'
Then the product 'StaticFrameworkResources.bundle' with destination 'Debug-iphoneos' contains resource 'tuist-bundle.png'
Scenario: The project is an iOS application with frameworks and tests (ios_app_with_framework_linking_static_framework)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_framework_linking_static_framework into the working directory
Then tuist generates the project
Then I should be able to build the scheme App
Then the product 'App.app' with destination 'Debug-iphoneos' contains resource 'Frameworks/Framework1.framework/Framework1'
Then the product 'App.app' with destination 'Debug-iphoneos' does not contain resource 'Frameworks/Framework2.framework/Framework2'
Then the product 'App.app' with destination 'Debug-iphoneos' does not contain resource 'Frameworks/Framework3.framework/Framework3'
Then the product 'App.app' with destination 'Debug-iphoneos' does not contain resource 'Frameworks/Framework4.framework/Framework4'
Then I should be able to test the scheme AppTests
Then I should be able to build the scheme Framework1
Then I should be able to test the scheme Framework1Tests
Then I should be able to build the scheme Framework2
Then I should be able to test the scheme Framework2Tests
Then I should be able to build the scheme Framework3
Then I should be able to test the scheme Framework3Tests
Then I should be able to build the scheme Framework4
Then I should be able to test the scheme Framework4Tests
Scenario: The project is an iOS application that has resources (ios_app_with_custom_scheme)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_custom_scheme into the working directory
Then tuist generates the project
Then I should be able to build the scheme App-Debug
Then I should be able to build the scheme App-Release
Then I should be able to build the scheme App-Local
Then I should be able to test the scheme AppTests
Then I should be able to build the scheme Framework1
Then I should be able to test the scheme Framework1Tests
Then I should be able to build the scheme Framework2
Then I should be able to test the scheme Framework2Tests
Scenario: The project is an iOS application with multiple configurations (ios_app_with_multi_configs)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_multi_configs into the working directory
Then tuist generates the project
Then the scheme App has a build setting CUSTOM_FLAG with value "Debug" for the configuration Debug
Then the scheme App has a build setting CUSTOM_FLAG with value "Beta" for the configuration Beta
Then the scheme App has a build setting CUSTOM_FLAG with value "Release" for the configuration Release
Then the scheme Framework2 has a build setting CUSTOM_FLAG with value "Debug" for the configuration Debug
Then the scheme Framework2 has a build setting CUSTOM_FLAG with value "Target.Beta" for the configuration Beta
Then the scheme Framework2 has a build setting CUSTOM_FLAG with value "Release" for the configuration Release
Scenario: The project is an iOS application with CocoaPods dependencies (ios_app_with_pods)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_pods into the working directory
Then tuist generates the project
Then I should be able to build the scheme App
Scenario: The project is an iOS application with an incompatible Xcode version (ios_app_with_incompatible_xcode)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_incompatible_xcode into the working directory
Then tuist generate yields error "The project, which only supports the versions of Xcode 3.2.1, is not compatible with your selected version of Xcode"
Scenario: The project is an iOS application with target actions
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_actions into the working directory
Then tuist generates the project
Then the target App should have the build phase Tuist in the first position
Then the target App should have the build phase Rocks in the last position