-
Notifications
You must be signed in to change notification settings - Fork 3
/
yaml_validation.feature
327 lines (296 loc) · 13.1 KB
/
yaml_validation.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
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
@yaml_validation
Feature: clowder yaml validation
@ssh
Scenario: validate project.branch
Given validating property <project_branch>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae has tracking branch felid
And project at felidae is on branch felid
@ssh
Scenario: validate implicit project.branch
Given validating property <project_implicit>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae has tracking branch master
And project at felidae is on branch master
@ssh
Scenario: validate project.commit
Given validating property <project_commit>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae is on commit e61b2495a3fe903f43a8c2be3d58b6b01bdbf664
And project at felidae has detached HEAD
@ssh
Scenario: validate implicit project.commit
Given validating property <project_implicit>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae has tracking branch master
And project at felidae is on branch master
@ssh
Scenario: validate project.git.config
Given validating property <project_git_config>
And validation clowder is initialized and herded
And project at felidae is clean
And project at felidae has no untracked files
And something file doesn't exist in directory felidae
When I change to directory felidae
And I run 'git something'
Then the command succeeds
And project at felidae is clean
And project at felidae has untracked files
And something file exists in directory felidae
@ssh
Scenario: validate implicit project.git.config
Given validating property <project_implicit>
And validation clowder is initialized and herded
And project at felidae is clean
And something file doesn't exist in directory felidae
When I change to directory felidae
And I run 'git something'
Then the command fails
And project at felidae is clean
And something file doesn't exist in directory felidae
@ssh
Scenario: validate project.git.depth
Given validating property <project_git_depth>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae is a git repository
And project at felidae is a shallow clone
@ssh
Scenario: validate implicit project.git.depth
Given validating property <project_implicit>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae is a git repository
And project at felidae is not a shallow clone
@ssh @lfs
Scenario: validate project.git.lfs
Given validating property <project_git_lfs>
And validation clowder is initialized
And felidae directory doesn't exist
And lfs is not installed
When I run 'clowder herd'
Then the command succeeds
And project at felidae is clean
And project at felidae has lfs installed
And jrgoodle.png file exists in directory felidae
And jrgoodle.png file in directory felidae is not an lfs pointer
@ssh @lfs
Scenario: validate implicit project.git.lfs
Given validating property <project_implicit>
And validation clowder is initialized
And felidae directory doesn't exist
And lfs is not installed
When I run 'clowder herd'
Then the command succeeds
And project at felidae is clean
And project at felidae doesn't have lfs installed
And jrgoodle.png file exists in directory felidae
And jrgoodle.png file in directory felidae is an lfs pointer
@ssh @submodules
Scenario: validate project.git.submodules
Given validating property <project_git_submodules>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae exists
And project at felidae is clean
And project at felidae has submodule at ash
And submodule in felidae at ash is initialized
# TODO: Better recursize submodule check
And project at felidae has submodule at ash/duffy
And submodule in felidae at ash/duffy is initialized
@ssh @submodules
Scenario: validate implicit project.git.submodules
Given validating property <project_implicit>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae exists
And project at felidae is clean
And project at felidae has submodule at ash
And submodule in felidae at ash is not initialized
@ssh
Scenario: validate project.groups
Given validating property <project_groups>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd cats'
And I run 'clowder herd cats-group'
Then the commands succeed
And project at felidae is a git repository
And project at felidae has tracking branch master
And project at felidae is on branch master
@ssh
Scenario: validate implicit project.groups
Given validating property <project_implicit>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd cats-group'
Then the command fails
And felidae directory doesn't exist
@ssh
Scenario: validate project.path
Given validating property <project_path>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at carnivora/feliforma/felidae is a git repository
And project at carnivora/feliforma/felidae has tracking branch master
And project at carnivora/feliforma/felidae is on branch master
@ssh
Scenario: validate implicit project.path
Given validating property <project_implicit>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae is a git repository
And project at felidae has tracking branch master
And project at felidae is on branch master
@ssh
Scenario: validate project.remote
Given validating property <project_remote>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae has remote source with url git@github.com:JrGoodle/felidae.git
@ssh
Scenario: validate implicit project.remote
Given validating property <project_implicit>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae has remote origin with url git@github.com:JrGoodle/felidae.git
Scenario: validate project.source.protocol
Given validating property <project_source_protocol>
And validation clowder is initialized
And gyp directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at gyp has remote origin with url https://chromium.googlesource.com/external/gyp.git
@ssh
Scenario: validate implicit project.source.protocol
Given validating property <project_implicit>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae has remote origin with url git@github.com:JrGoodle/felidae.git
@ssh
Scenario: validate project.source.url
Given validating property <project_source_url>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae has remote origin with url git@polka-dot-cat.git.beanstalkapp.com:polka-dot-cat/felidae.git
@ssh
Scenario: validate implicit project.source.url
Given validating property <project_implicit>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae has remote origin with url git@github.com:JrGoodle/felidae.git
@ssh
Scenario: validate project.tag
Given validating property <project_tag>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae is on tag cat
And project at felidae has detached HEAD
@ssh
Scenario: validate implicit project.tag
Given validating property <project_implicit>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae has tracking branch master
And project at felidae is on branch master
@ssh @upstream
Scenario: validate upstream.remote
Given validating property <upstream_remote>
And validation clowder is initialized
And djinni directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at djinni has remote source with url git@github.com:dropbox/djinni.git
And project at djinni has remote origin with url git@github.com:JrGoodle/djinni.git
@ssh @upstream
Scenario: validate implicit upstream.remote
Given validating property <upstream_implicit>
And validation clowder is initialized
And djinni directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at djinni has remote upstream with url git@github.com:dropbox/djinni.git
And project at djinni has remote origin with url git@github.com:JrGoodle/djinni.git
@ssh @upstream
Scenario: validate upstream.source.protocol base
Given validating property <upstream_source_protocol_base>
And validation clowder is initialized
And gyp directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at gyp has remote upstream with url https://chromium.googlesource.com/external/gyp.git
And project at gyp has remote origin with url https://github.com/JrGoodle/gyp.git
@ssh @upstream
Scenario: validate upstream.source.protocol
Given validating property <upstream_source_protocol>
And validation clowder is initialized
And gyp directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at gyp has remote upstream with url https://chromium.googlesource.com/external/gyp.git
And project at gyp has remote origin with url git@github.com:JrGoodle/gyp.git
@ssh @upstream
Scenario: validate implicit upstream.source.protocol
Given validating property <upstream_implicit>
And validation clowder is initialized
And djinni directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at djinni has remote upstream with url git@github.com:dropbox/djinni.git
And project at djinni has remote origin with url git@github.com:JrGoodle/djinni.git
@ssh @upstream
Scenario: validate upstream.source.url
Given validating property <upstream_source_url>
And validation clowder is initialized
And felidae directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at felidae has remote upstream with url git@polka-dot-cat.git.beanstalkapp.com:polka-dot-cat/felidae.git
And project at felidae has remote origin with url git@github.com:JrGoodle/felidae.git
@ssh @upstream
Scenario: validate implicit upstream.source.url
Given validating property <upstream_implicit>
And validation clowder is initialized
And djinni directory doesn't exist
When I run 'clowder herd'
Then the command succeeds
And project at djinni has remote upstream with url git@github.com:dropbox/djinni.git
And project at djinni has remote origin with url git@github.com:JrGoodle/djinni.git