-
-
Notifications
You must be signed in to change notification settings - Fork 506
/
generate.feature
240 lines (218 loc) · 14.8 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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
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 for iOS the scheme App
Then I should be able to test for iOS the scheme AppTests
Then I should be able to test for iOS the scheme AppUITests
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 for iOS the scheme App
Then I should be able to test for iOS the scheme AppTests
Then I should be able to test for iOS the scheme Framework1Tests
Then I should be able to build for iOS the scheme Framework2-iOS
Then I should be able to build for macOS the scheme Framework2-macOS
Then I should be able to test for iOS the scheme Framework2Tests
Then I should be able to build for iOS 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 for iOS the scheme App
Then I should be able to test for iOS the scheme AppTests
Then I should be able to build for iOS the scheme Framework1-iOS
Then I should be able to build for macOS the scheme Framework1-macOS
Then I should be able to test for iOS the scheme Framework1Tests
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 for iOS the scheme App
Then I should be able to test for iOS the scheme AppTests
Then I should be able to build for iOS the scheme A
Then I should be able to test for iOS the scheme ATests
Then I should be able to build for iOS the scheme B
Then I should be able to test for iOS the scheme BTests
Scenario: The project is an iOS application with frameworks and tests (ios_app_with_static_library_and_package)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_static_library_and_package into the working directory
Then tuist generates the project
Then I should be able to build for iOS the scheme App
Then I should be able to test for iOS the scheme AppTests
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 for iOS the scheme App
Then I should be able to test for iOS the scheme AppTests
Then I should be able to build for iOS the scheme A
Then I should be able to test for iOS the scheme ATests
Then I should be able to build for iOS the scheme B
Then I should be able to test for iOS 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 for iOS the scheme App
Then I should be able to test for iOS the scheme AppTests
Then I should be able to build for macOS the scheme MacFramework
Then I should be able to build for iOS the scheme StaticFramework
Then I should be able to test for iOS the scheme StaticFrameworkTests
Then I should be able to build for tvOS 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 for iOS 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_64'
Then I should be able to build for iOS the scheme Framework1-iOS
Then I should be able to build for iOS the scheme Framework1-macOS
Then I should be able to build for iOS the scheme Framework1Tests-iOS
Then I should be able to build for macOS 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 for iOS 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 for iOS 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 for iOS the scheme AppTests
Then I should be able to build for iOS the scheme Framework1
Then I should be able to test for iOS the scheme Framework1Tests
Then I should be able to build for iOS the scheme Framework2
Then I should be able to test for iOS the scheme Framework2Tests
Then I should be able to build for iOS the scheme Framework3
Then I should be able to test for iOS the scheme Framework3Tests
Then I should be able to build for iOS the scheme Framework4
Then I should be able to test for iOS 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 for iOS the scheme App-Debug
Then I should be able to build for iOS the scheme App-Release
Then I should be able to build for iOS the scheme App-Local
Then I should be able to test for iOS the scheme AppTests
Then I should be able to build for iOS the scheme Framework1
Then I should be able to test for iOS the scheme Framework1Tests
Then I should be able to build for iOS the scheme Framework2
Then I should be able to test for iOS the scheme Framework2Tests
Scenario: The project is an iOS application with local Swift package (ios_app_with_local_swift_package)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_local_swift_package into the working directory
Then tuist generates the project
Then I should be able to build for iOS the scheme App
Then I should be able to test for iOS the scheme AppTests
Then I should be able to build for iOS the scheme LibraryA
Then I should be able to build for iOS the scheme LibraryB
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
Then I should be able to archive for iOS the scheme App
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 for iOS 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
Scenario: The project is an iOS application with remote Swift package (ios_app_with_remote_swift_package)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_remote_swift_package into the working directory
Then tuist generates the project
Then I should be able to build for iOS the scheme App
Then I should be able to test for iOS the scheme AppTests
Scenario: The project is an iOS application with Carthage frameworks (ios_app_with_carthage_frameworks)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_carthage_frameworks into the working directory
Then tuist generates the project
Then I should be able to build for iOS the scheme App
Then the product 'App.app' with destination 'Debug-iphoneos' contains the framework 'RxSwift' without architecture 'armv7'
Then the product 'App.app' with destination 'Debug-iphoneos' contains the framework 'RxSwift' with architecture 'arm64'
Scenario: The project is an iOS application with extensions (ios_app_with_extensions)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_extensions into the working directory
Then tuist generates the project
Then I should be able to build for iOS the scheme App
Then the product 'App.app' with destination 'Debug-iphoneos' contains extension 'StickersPackExtension'
Then the product 'App.app' with destination 'Debug-iphoneos' contains extension 'NotificationServiceExtension'
Then the product 'App.app' with destination 'Debug-iphoneos' contains extension 'NotificationServiceExtension'
Scenario: The project is an iOS application with watch app (ios_app_with_watchapp2)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_watchapp2 into the working directory
Then tuist generates the project
Then I should be able to build for watchOS the scheme App
Then the product 'App.app' with destination 'Debug-iphoneos' contains resource 'Watch/WatchApp.app'
Then the product 'WatchApp.app' with destination 'Debug-watchos' contains extension 'WatchAppExtension'
Scenario: The project is an iOS application with Xcframeworks (ios_app_with_xcframeworks)
Given that tuist is available
And I have a working directory
Then I copy the fixture ios_app_with_xcframeworks into the working directory
Then tuist generates the project
Then I should be able to build for iOS the scheme App
Then the product 'App.app' with destination 'Debug-iphoneos' contains the framework 'MyFramework' with architecture 'arm64'