berkshelf 7.0.7 → 7.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -1
  3. data/berkshelf.gemspec +8 -9
  4. data/bin/berks +5 -0
  5. data/lib/berkshelf/cached_cookbook.rb +1 -1
  6. data/lib/berkshelf/chef_config_compat.rb +1 -0
  7. data/lib/berkshelf/chef_repo_universe.rb +2 -2
  8. data/lib/berkshelf/formatters/json.rb +3 -3
  9. data/lib/berkshelf/lockfile.rb +3 -3
  10. data/lib/berkshelf/uploader.rb +3 -3
  11. data/lib/berkshelf/version.rb +1 -1
  12. metadata +32 -186
  13. data/.github/lock.yml +0 -1
  14. data/.gitignore +0 -30
  15. data/.rubocop.yml +0 -12
  16. data/.travis.yml +0 -73
  17. data/CHANGELOG.legacy.md +0 -307
  18. data/CHANGELOG.md +0 -1589
  19. data/CONTRIBUTING.md +0 -68
  20. data/Gemfile.lock +0 -292
  21. data/PLUGINS.md +0 -25
  22. data/README.md +0 -72
  23. data/Thorfile +0 -61
  24. data/appveyor.yml +0 -31
  25. data/docs/berkshelf_for_newcomers.md +0 -64
  26. data/features/artifactory.feature +0 -70
  27. data/features/berksfile.feature +0 -46
  28. data/features/commands/apply.feature +0 -41
  29. data/features/commands/contingent.feature +0 -47
  30. data/features/commands/info.feature +0 -141
  31. data/features/commands/install.feature +0 -646
  32. data/features/commands/list.feature +0 -78
  33. data/features/commands/outdated.feature +0 -176
  34. data/features/commands/package.feature +0 -17
  35. data/features/commands/search.feature +0 -17
  36. data/features/commands/shelf/list.feature +0 -32
  37. data/features/commands/shelf/show.feature +0 -113
  38. data/features/commands/shelf/uninstall.feature +0 -96
  39. data/features/commands/show.feature +0 -83
  40. data/features/commands/update.feature +0 -142
  41. data/features/commands/upload.feature +0 -499
  42. data/features/commands/vendor.feature +0 -154
  43. data/features/commands/verify.feature +0 -29
  44. data/features/commands/viz.feature +0 -66
  45. data/features/community_site.feature +0 -37
  46. data/features/help.feature +0 -11
  47. data/features/json_formatter.feature +0 -158
  48. data/features/lifecycle.feature +0 -378
  49. data/features/lockfile.feature +0 -378
  50. data/features/step_definitions/berksfile_steps.rb +0 -54
  51. data/features/step_definitions/chef/config_steps.rb +0 -12
  52. data/features/step_definitions/chef_server_steps.rb +0 -60
  53. data/features/step_definitions/cli_steps.rb +0 -18
  54. data/features/step_definitions/config_steps.rb +0 -46
  55. data/features/step_definitions/environment_steps.rb +0 -11
  56. data/features/step_definitions/filesystem_steps.rb +0 -286
  57. data/features/step_definitions/gem_steps.rb +0 -13
  58. data/features/step_definitions/json_steps.rb +0 -29
  59. data/features/step_definitions/utility_steps.rb +0 -11
  60. data/features/support/aruba.rb +0 -12
  61. data/features/support/env.rb +0 -77
  62. data/spec/fixtures/cookbooks/example_cookbook/.gitignore +0 -2
  63. data/spec/fixtures/cookbooks/example_cookbook/.kitchen.yml +0 -26
@@ -1,378 +0,0 @@
1
- #
2
- # The lifecycle feature contains a series of "long-running" lifecycle commands.
3
- # These tests do not fit into a single command as they are cross-cutting and
4
- # require more setup than a typical test.
5
- #
6
- # These tests are designed to mirror the real-world use cases for Berkshelf in
7
- # day-to-day work. It also contains a collection of previously known bugs to
8
- # prevent regressions.
9
- #
10
- Feature: Lifecycle commands
11
- Background:
12
- * the cookbook store has the cookbooks:
13
- | ekaf | 1.0.0 |
14
- | fake | 1.0.0 |
15
-
16
- Scenario: A trusted lockfile does not fetch the dependency index
17
- * I have a Berksfile pointing at the local Berkshelf API with:
18
- """
19
- cookbook 'fake', '1.0.0'
20
- """
21
- * I write to "Berksfile.lock" with:
22
- """
23
- DEPENDENCIES
24
- fake (= 1.0.0)
25
-
26
- GRAPH
27
- fake (1.0.0)
28
- """
29
- * I successfully run `berks install`
30
- * the output should not contain "Fetching cookbook index"
31
- * the output should contain "Using fake (1.0.0)"
32
-
33
- Scenario: An untrusted lockfile fetches the dependency index
34
- * I have a Berksfile pointing at the local Berkshelf API with:
35
- """
36
- cookbook 'fake', '1.0.0'
37
- """
38
- * I successfully run `berks install`
39
- * the output should contain "Fetching cookbook index"
40
- * the file "Berksfile.lock" should contain:
41
- """
42
- DEPENDENCIES
43
- fake (= 1.0.0)
44
-
45
- GRAPH
46
- fake (1.0.0)
47
- """
48
- * I append to "Berksfile" with:
49
- """
50
-
51
- cookbook 'ekaf', '1.0.0'
52
- """
53
- * I successfully run `berks install`
54
- * the file "Berksfile.lock" should contain:
55
- """
56
- DEPENDENCIES
57
- ekaf (= 1.0.0)
58
- fake (= 1.0.0)
59
-
60
- GRAPH
61
- ekaf (1.0.0)
62
- fake (1.0.0)
63
- """
64
- * the output should contain "Using ekaf (1.0.0)"
65
- * the output should contain "Using fake (1.0.0)"
66
-
67
- Scenario: Removing a direct dependency
68
- * I have a Berksfile pointing at the local Berkshelf API with:
69
- """
70
- cookbook 'fake', '1.0.0'
71
- """
72
- * I write to "Berksfile.lock" with:
73
- """
74
- DEPENDENCIES
75
- ekaf (= 1.0.0)
76
- fake (= 1.0.0)
77
-
78
- GRAPH
79
- ekaf (1.0.0)
80
- fake (1.0.0)
81
- """
82
- * I successfully run `berks install`
83
- * the file "Berksfile.lock" should contain:
84
- """
85
- DEPENDENCIES
86
- fake (= 1.0.0)
87
-
88
- GRAPH
89
- fake (1.0.0)
90
- """
91
- * the output should not contain "Using ekaf (1.0.0)"
92
- * the output should contain "Using fake (1.0.0)"
93
-
94
- Scenario: A trusted lockfile with transitive dependencies does not fetch the dependency index
95
- * I have a Berksfile pointing at the local Berkshelf API with:
96
- """
97
- metadata
98
- """
99
- * I write to "metadata.rb" with:
100
- """
101
- name 'transitive'
102
- version '1.2.3'
103
- depends 'fake', '1.0.0'
104
- """
105
- * I write to "Berksfile.lock" with:
106
- """
107
- DEPENDENCIES
108
- transitive
109
- path: .
110
- metadata: true
111
-
112
- GRAPH
113
- fake (1.0.0)
114
- transitive (1.2.3)
115
- fake (= 1.0.0)
116
- """
117
- * I successfully run `berks install`
118
- * the output should not contain "Fetching cookbook index"
119
- * the output should contain "Using fake (1.0.0)"
120
- * the output should contain "Using transitive (1.2.3)"
121
-
122
- Scenario: An utrusted lockfile because of transitive dependencies fetches the dependency index
123
- * I have a Berksfile pointing at the local Berkshelf API with:
124
- """
125
- metadata
126
- """
127
- * I write to "metadata.rb" with:
128
- """
129
- name 'transitive'
130
- version '1.2.3'
131
- depends 'fake', '1.0.0'
132
- """
133
- * I successfully run `berks install`
134
- * the output should contain "Fetching cookbook index"
135
- * the file "Berksfile.lock" should contain:
136
- """
137
- DEPENDENCIES
138
- transitive
139
- path: .
140
- metadata: true
141
-
142
- GRAPH
143
- fake (1.0.0)
144
- transitive (1.2.3)
145
- fake (= 1.0.0)
146
- """
147
- * I append to "metadata.rb" with:
148
- """
149
-
150
- depends 'ekaf', '1.0.0'
151
- """
152
- * I successfully run `berks install`
153
- * the file "Berksfile.lock" should contain:
154
- """
155
- DEPENDENCIES
156
- transitive
157
- path: .
158
- metadata: true
159
-
160
- GRAPH
161
- ekaf (1.0.0)
162
- fake (1.0.0)
163
- transitive (1.2.3)
164
- ekaf (= 1.0.0)
165
- fake (= 1.0.0)
166
- """
167
- * the output should contain "Using ekaf (1.0.0)"
168
- * the output should contain "Using fake (1.0.0)"
169
- * the output should contain "Using transitive (1.2.3)"
170
-
171
- Scenario: Removing a transitive dependency
172
- * I have a Berksfile pointing at the local Berkshelf API with:
173
- """
174
- metadata
175
- """
176
- * I write to "metadata.rb" with:
177
- """
178
- name 'transitive'
179
- version '1.2.3'
180
- depends 'fake', '1.0.0'
181
- """
182
- * I write to "Berksfile.lock" with:
183
- """
184
- DEPENDENCIES
185
- transitive
186
- path: .
187
- metadata: true
188
-
189
- GRAPH
190
- ekaf (1.0.0)
191
- fake (1.0.0)
192
- transitive (1.2.3)
193
- ekaf (= 1.0.0)
194
- fake (= 1.0.0)
195
- """
196
- * I successfully run `berks install`
197
- * the file "Berksfile.lock" should contain:
198
- """
199
- DEPENDENCIES
200
- transitive
201
- path: .
202
- metadata: true
203
-
204
- GRAPH
205
- fake (1.0.0)
206
- transitive (1.2.3)
207
- fake (= 1.0.0)
208
- """
209
- * the output should not contain "Using ekaf (1.0.0)"
210
- * the output should contain "Using fake (1.0.0)"
211
-
212
- Scenario: Moving a transitive dependency to a direct dependency
213
- * I have a Berksfile pointing at the local Berkshelf API with:
214
- """
215
- metadata
216
- """
217
- * I write to "metadata.rb" with:
218
- """
219
- name 'transitive'
220
- version '1.2.3'
221
- depends 'fake', '1.0.0'
222
- """
223
- * I successfully run `berks install`
224
- * the file "Berksfile.lock" should contain:
225
- """
226
- DEPENDENCIES
227
- transitive
228
- path: .
229
- metadata: true
230
-
231
- GRAPH
232
- fake (1.0.0)
233
- transitive (1.2.3)
234
- fake (= 1.0.0)
235
- """
236
- * the output should not contain "Using ekaf (1.0.0)"
237
- * the output should contain "Using fake (1.0.0)"
238
- * I write to "fake/metadata.rb" with:
239
- """
240
- name 'fake'
241
- version '1.0.0'
242
- """
243
- * I have a Berksfile pointing at the local Berkshelf API with:
244
- """
245
- metadata
246
- cookbook 'fake', path: 'fake'
247
- """
248
- * I successfully run `berks install`
249
- * the file "Berksfile.lock" should contain:
250
- """
251
- DEPENDENCIES
252
- fake
253
- path: fake
254
- transitive
255
- path: .
256
- metadata: true
257
-
258
- GRAPH
259
- fake (1.0.0)
260
- transitive (1.2.3)
261
- fake (= 1.0.0)
262
- """
263
-
264
- Scenario: Moving a transitive dependency to a direct dependency and then removing it
265
- * I have a Berksfile pointing at the local Berkshelf API with:
266
- """
267
- metadata
268
- """
269
- * I write to "metadata.rb" with:
270
- """
271
- name 'transitive'
272
- version '1.2.3'
273
- depends 'fake'
274
- """
275
- * I successfully run `berks install`
276
- * I write to "fake/metadata.rb" with:
277
- """
278
- name 'fake'
279
- version '1.0.0'
280
- """
281
- * I have a Berksfile pointing at the local Berkshelf API with:
282
- """
283
- metadata
284
- cookbook 'fake', path: 'fake'
285
- """
286
- * I successfully run `berks install`
287
- * I have a Berksfile pointing at the local Berkshelf API with:
288
- """
289
- metadata
290
- """
291
- * I successfully run `berks install`
292
- * the file "Berksfile.lock" should contain:
293
- """
294
- DEPENDENCIES
295
- transitive
296
- path: .
297
- metadata: true
298
-
299
- GRAPH
300
- fake (1.0.0)
301
- transitive (1.2.3)
302
- fake (>= 0.0.0)
303
- """
304
-
305
- Scenario: Bumping the version of a local cookbook
306
- * I have a Berksfile pointing at the local Berkshelf API with:
307
- """
308
- metadata
309
- """
310
- * I write to "metadata.rb" with:
311
- """
312
- name 'fake'
313
- version '1.0.0'
314
- """
315
- * I successfully run `berks install`
316
- * the file "Berksfile.lock" should contain:
317
- """
318
- DEPENDENCIES
319
- fake
320
- path: .
321
- metadata: true
322
-
323
- GRAPH
324
- fake (1.0.0)
325
- """
326
- * I write to "metadata.rb" with:
327
- """
328
- name 'fake'
329
- version '1.0.1'
330
- """
331
- * I successfully run `berks install`
332
- * the file "Berksfile.lock" should contain:
333
- """
334
- DEPENDENCIES
335
- fake
336
- path: .
337
- metadata: true
338
-
339
- GRAPH
340
- fake (1.0.1)
341
- """
342
- * the output should contain "Using fake (1.0.1)"
343
-
344
- Scenario: Switching a dependency to a new location
345
- * I have a Berksfile pointing at the local Berkshelf API with:
346
- """
347
- cookbook 'fake'
348
- """
349
- * I write to "Berksfile.lock" with:
350
- """
351
- DEPENDENCIES
352
- fake
353
-
354
- GRAPH
355
- fake (1.0.0)
356
- """
357
- * I have a Berksfile pointing at the local Berkshelf API with:
358
- """
359
- cookbook 'fake', path: './fake'
360
- """
361
- * I write to "fake/metadata.rb" with:
362
-
363
- """
364
- name 'fake'
365
- version '2.0.0'
366
- """
367
- * I successfully run `berks install`
368
- * the file "Berksfile.lock" should contain:
369
- """
370
- DEPENDENCIES
371
- fake
372
- path: fake
373
-
374
- GRAPH
375
- fake (2.0.0)
376
- """
377
- * the output should not contain "Using fake (1.0.0)"
378
- * the output should contain "Using fake (2.0.0)"
@@ -1,378 +0,0 @@
1
- @api_server
2
- Feature: Creating and reading the Berkshelf lockfile
3
- Background:
4
- * the cookbook store has the cookbooks:
5
- | fake | 0.1.0 |
6
- | fake | 0.2.0 |
7
- | fake | 1.0.0 |
8
- * the cookbook store has the git cookbooks:
9
- | berkshelf-cookbook-fixture | 0.2.0 | 70a527e17d91f01f031204562460ad1c17f972ee |
10
- | berkshelf-cookbook-fixture | 1.0.0 | 919afa0c402089df23ebdf36637f12271b8a96b4 |
11
- | berkshelf-cookbook-fixture | 1.0.0 | a97b9447cbd41a5fe58eee2026e48ccb503bd3bc |
12
- | berkshelf-cookbook-fixture | 1.0.0 | 93f5768b7d14df45e10d16c8bf6fe98ba3ff809a |
13
-
14
- Scenario: Writing the Berksfile.lock
15
- Given I have a Berksfile pointing at the local Berkshelf API with:
16
- """
17
- cookbook 'fake', '1.0.0'
18
- """
19
- When I successfully run `berks install`
20
- Then the file "Berksfile.lock" should contain:
21
- """
22
- DEPENDENCIES
23
- fake (= 1.0.0)
24
-
25
- GRAPH
26
- fake (1.0.0)
27
- """
28
-
29
- Scenario: Writing the Berksfile.lock when a 2.0 lockfile is present
30
- Given I have a Berksfile pointing at the local Berkshelf API with:
31
- """
32
- cookbook 'fake', '1.0.0'
33
- """
34
- And I write to "Berksfile.lock" with:
35
- """
36
- {
37
- "sources": {
38
- "fake": {
39
- "locked_version": "1.0.0"
40
- }
41
- }
42
- }
43
- """
44
- When I successfully run `berks install`
45
- Then the output should contain:
46
- """
47
- It looks like you are using an older version of the lockfile.
48
- """
49
- And the file "Berksfile.lock" should contain:
50
- """
51
- DEPENDENCIES
52
- fake (= 1.0.0)
53
-
54
- GRAPH
55
- fake (1.0.0)
56
- """
57
-
58
- Scenario: Reading the Berksfile.lock when it contains an invalid path location
59
- Given I have a Berksfile pointing at the local Berkshelf API with:
60
- """
61
- cookbook 'fake'
62
- """
63
- And I write to "Berksfile.lock" with:
64
- """
65
- DEPENDENCIES
66
- non-existent (~> 0.1)
67
- path: /this/path/does/not/exist
68
- """
69
- When I successfully run `berks install`
70
- And the file "Berksfile.lock" should contain:
71
- """
72
- DEPENDENCIES
73
- fake
74
-
75
- GRAPH
76
- fake (1.0.0)
77
- """
78
-
79
- Scenario: Installing a cookbook with dependencies
80
- Given the cookbook store has the cookbooks:
81
- | dep | 1.0.0 |
82
- And the cookbook store contains a cookbook "fake" "1.0.0" with dependencies:
83
- | dep | ~> 1.0.0 |
84
- And I have a Berksfile pointing at the local Berkshelf API with:
85
- """
86
- cookbook 'fake', '1.0.0'
87
- """
88
- When I successfully run `berks install`
89
- Then the file "Berksfile.lock" should contain:
90
- """
91
- DEPENDENCIES
92
- fake (= 1.0.0)
93
-
94
- GRAPH
95
- dep (1.0.0)
96
- fake (1.0.0)
97
- dep (~> 1.0.0)
98
- """
99
-
100
- Scenario: Writing the Berksfile.lock with a pessimistic lock
101
- And I have a Berksfile pointing at the local Berkshelf API with:
102
- """
103
- cookbook 'fake', '~> 1.0.0'
104
- """
105
- And I write to "Berksfile.lock" with:
106
- """
107
- DEPENDENCIES
108
- fake (~> 1.0.0)
109
-
110
- GRAPH
111
- fake (1.0.0)
112
- """
113
- When I successfully run `berks install`
114
- Then the file "Berksfile.lock" should contain:
115
- """
116
- DEPENDENCIES
117
- fake (~> 1.0.0)
118
-
119
- GRAPH
120
- fake (1.0.0)
121
- """
122
-
123
- Scenario: Updating with a Berksfile.lock with pessimistic lock
124
- Given I have a Berksfile pointing at the local Berkshelf API with:
125
- """
126
- cookbook 'fake', '~> 0.1'
127
- """
128
- And I write to "Berksfile.lock" with:
129
- """
130
- DEPENDENCIES
131
- fake (~> 0.1)
132
-
133
- GRAPH
134
- fake (0.1.0)
135
- """
136
- When I successfully run `berks update fake`
137
- Then the file "Berksfile.lock" should contain:
138
- """
139
- DEPENDENCIES
140
- fake (~> 0.1)
141
-
142
- GRAPH
143
- fake (0.2.0)
144
- """
145
-
146
- Scenario: Updating with a Berksfile.lock with hard lock
147
- And I have a Berksfile pointing at the local Berkshelf API with:
148
- """
149
- cookbook 'fake', '0.1.0'
150
- """
151
- And I write to "Berksfile.lock" with:
152
- """
153
- DEPENDENCIES
154
- fake (= 0.1.0)
155
-
156
- GRAPH
157
- fake (0.1.0)
158
- """
159
- When I successfully run `berks update fake`
160
- Then the file "Berksfile.lock" should contain:
161
- """
162
- DEPENDENCIES
163
- fake (= 0.1.0)
164
-
165
- GRAPH
166
- fake (0.1.0)
167
- """
168
-
169
- Scenario: Updating a Berksfile.lock with a git location
170
- Given I have a Berksfile pointing at the local Berkshelf API with:
171
- """
172
- cookbook 'berkshelf-cookbook-fixture', git: 'git://github.com/RiotGames/berkshelf-cookbook-fixture.git', ref: '919afa0c4'
173
- """
174
- When I successfully run `berks install`
175
- Then the file "Berksfile.lock" should contain:
176
- """
177
- DEPENDENCIES
178
- berkshelf-cookbook-fixture
179
- git: git://github.com/RiotGames/berkshelf-cookbook-fixture.git
180
- revision: 919afa0c402089df23ebdf36637f12271b8a96b4
181
- ref: 919afa0
182
-
183
- GRAPH
184
- berkshelf-cookbook-fixture (1.0.0)
185
- """
186
-
187
- Scenario: Updating a Berksfile.lock with a git location and a branch
188
- Given I have a Berksfile pointing at the local Berkshelf API with:
189
- """
190
- cookbook 'berkshelf-cookbook-fixture', git: 'git://github.com/RiotGames/berkshelf-cookbook-fixture.git', branch: 'master'
191
- """
192
- When I successfully run `berks install`
193
- Then the file "Berksfile.lock" should contain:
194
- """
195
- DEPENDENCIES
196
- berkshelf-cookbook-fixture
197
- git: git://github.com/RiotGames/berkshelf-cookbook-fixture.git
198
- revision: a97b9447cbd41a5fe58eee2026e48ccb503bd3bc
199
- branch: master
200
-
201
- GRAPH
202
- berkshelf-cookbook-fixture (1.0.0)
203
- """
204
-
205
- Scenario: Updating a Berksfile.lock with a git location and a tag
206
- Given I have a Berksfile pointing at the local Berkshelf API with:
207
- """
208
- cookbook 'berkshelf-cookbook-fixture', git: 'git://github.com/RiotGames/berkshelf-cookbook-fixture.git', tag: 'v0.2.0'
209
- """
210
- When I successfully run `berks install`
211
- Then the file "Berksfile.lock" should contain:
212
- """
213
- DEPENDENCIES
214
- berkshelf-cookbook-fixture
215
- git: git://github.com/RiotGames/berkshelf-cookbook-fixture.git
216
- revision: 70a527e17d91f01f031204562460ad1c17f972ee
217
- tag: v0.2.0
218
-
219
- GRAPH
220
- berkshelf-cookbook-fixture (0.2.0)
221
- """
222
-
223
- Scenario: Updating a Berksfile.lock with a GitHub location
224
- Given I have a Berksfile pointing at the local Berkshelf API with:
225
- """
226
- cookbook 'berkshelf-cookbook-fixture', github: 'RiotGames/berkshelf-cookbook-fixture', ref: '919afa0c4'
227
- """
228
- When I successfully run `berks install`
229
- Then the file "Berksfile.lock" should contain:
230
- """
231
- DEPENDENCIES
232
- berkshelf-cookbook-fixture
233
- git: https://github.com/RiotGames/berkshelf-cookbook-fixture.git
234
- revision: 919afa0c402089df23ebdf36637f12271b8a96b4
235
- ref: 919afa0
236
-
237
- GRAPH
238
- berkshelf-cookbook-fixture (1.0.0)
239
- """
240
-
241
- Scenario: Updating a Berksfile.lock when a git location with :rel
242
- Given I have a Berksfile pointing at the local Berkshelf API with:
243
- """
244
- cookbook 'berkshelf-cookbook-fixture', github: 'RiotGames/berkshelf-cookbook-fixture', branch: 'rel', rel: 'cookbooks/berkshelf-cookbook-fixture'
245
- """
246
- When I successfully run `berks install`
247
- Then the file "Berksfile.lock" should contain:
248
- """
249
- DEPENDENCIES
250
- berkshelf-cookbook-fixture
251
- git: https://github.com/RiotGames/berkshelf-cookbook-fixture.git
252
- revision: 93f5768b7d14df45e10d16c8bf6fe98ba3ff809a
253
- branch: rel
254
- rel: cookbooks/berkshelf-cookbook-fixture
255
-
256
- GRAPH
257
- berkshelf-cookbook-fixture (1.0.0)
258
- """
259
-
260
- Scenario: Updating a Berksfile.lock with a path location
261
- Given a cookbook named "fake"
262
- And I have a Berksfile pointing at the local Berkshelf API with:
263
- """
264
- cookbook 'fake', path: './fake'
265
- """
266
- When I successfully run `berks install`
267
- Then the file "Berksfile.lock" should contain:
268
- """
269
- DEPENDENCIES
270
- fake
271
- path: fake
272
-
273
- GRAPH
274
- fake (0.0.0)
275
- """
276
-
277
- Scenario: Installing a Berksfile with a metadata location
278
- Given a cookbook named "fake"
279
- And I cd to "fake"
280
- And I have a Berksfile pointing at the local Berkshelf API with:
281
- """
282
- metadata
283
- """
284
- When I successfully run `berks install`
285
- Then the file "Berksfile.lock" should contain:
286
- """
287
- DEPENDENCIES
288
- fake
289
- path: .
290
- metadata: true
291
-
292
- GRAPH
293
- fake (0.0.0)
294
- """
295
-
296
- Scenario: Installing a Berksfile with a locked metadata location
297
- Given a cookbook named "fake"
298
- And I cd to "fake"
299
- And I have a Berksfile pointing at the local Berkshelf API with:
300
- """
301
- metadata
302
- """
303
- And I write to "Berksfile.lock" with:
304
- """
305
- DEPENDENCIES
306
- fake
307
- path: .
308
- metadata: true
309
-
310
- GRAPH
311
- fake (0.0.0)
312
- """
313
- When I successfully run `berks install`
314
- Then the file "Berksfile.lock" should contain:
315
- """
316
- DEPENDENCIES
317
- fake
318
- path: .
319
- metadata: true
320
-
321
- GRAPH
322
- fake (0.0.0)
323
- """
324
-
325
- Scenario: Installing when the locked version is no longer satisfied
326
- Given I have a Berksfile pointing at the local Berkshelf API with:
327
- """
328
- cookbook 'fake', '~> 1.3.0'
329
- """
330
- And I write to "Berksfile.lock" with:
331
- """
332
- DEPENDENCIES
333
- fake (~> 1.3.0)
334
-
335
- GRAPH
336
- fake (1.0.0)
337
- """
338
- When I run `berks install`
339
- Then the output should contain:
340
- """
341
- Berkshelf could not find compatible versions for cookbook 'fake':
342
- In Berksfile:
343
- fake (~> 1.3.0)
344
-
345
- In Berksfile.lock:
346
- fake (1.0.0)
347
-
348
- Try running `berks update fake`, which will try to find 'fake' matching '~> 1.3.0'
349
- """
350
- And the exit status should be "OutdatedDependency"
351
-
352
- Scenario: Installing when the Lockfile is empty
353
- Given I have a Berksfile pointing at the local Berkshelf API with:
354
- """
355
- cookbook 'fake', '1.0.0'
356
- """
357
- And an empty file named "Berksfile.lock"
358
- When I successfully run `berks install`
359
- Then the output should contain:
360
- """
361
- Using fake (1.0.0)
362
- """
363
-
364
- Scenario: Installing when the Lockfile is in a bad state
365
- Given I have a Berksfile pointing at the local Berkshelf API with:
366
- """
367
- cookbook 'fake', '1.0.0'
368
- """
369
- Given I write to "Berksfile.lock" with:
370
- """
371
- this is totally not valid
372
- """
373
- When I run `berks install`
374
- Then the output should contain:
375
- """
376
- Error reading the Berkshelf lockfile:
377
- """
378
- And the exit status should be "LockfileParserError"