cf 0.6.1.rc3 → 0.6.1.rc4

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 (42) hide show
  1. data/lib/cf/cli.rb +6 -3
  2. data/lib/cf/cli/populators/base.rb +14 -0
  3. data/lib/cf/cli/populators/organization.rb +23 -0
  4. data/lib/cf/cli/populators/populator_methods.rb +52 -0
  5. data/lib/cf/cli/populators/space.rb +29 -0
  6. data/lib/cf/cli/populators/target.rb +13 -0
  7. data/lib/cf/cli/service/services.rb +5 -2
  8. data/lib/cf/cli/space/base.rb +6 -0
  9. data/lib/cf/cli/space/spaces.rb +46 -44
  10. data/lib/cf/cli/start/base.rb +7 -56
  11. data/lib/cf/cli/start/login.rb +3 -8
  12. data/lib/cf/cli/start/target.rb +5 -9
  13. data/lib/cf/version.rb +1 -1
  14. data/spec/assets/hello-sinatra/main.rb +5 -3
  15. data/spec/cf/cli/app/scale_spec.rb +5 -1
  16. data/spec/cf/cli/app/start_spec.rb +5 -1
  17. data/spec/cf/cli/domain/map_spec.rb +5 -1
  18. data/spec/cf/cli/domain/unmap_spec.rb +5 -1
  19. data/spec/cf/cli/organization/orgs_spec.rb +1 -1
  20. data/spec/cf/cli/populators/organization_spec.rb +130 -0
  21. data/spec/cf/cli/populators/space_spec.rb +131 -0
  22. data/spec/cf/cli/populators/target_spec.rb +18 -0
  23. data/spec/cf/cli/route/map_spec.rb +5 -1
  24. data/spec/cf/cli/route/unmap_spec.rb +5 -1
  25. data/spec/cf/cli/service/services_spec.rb +72 -0
  26. data/spec/cf/cli/space/create_spec.rb +24 -7
  27. data/spec/cf/cli/space/rename_spec.rb +16 -5
  28. data/spec/cf/cli/space/spaces_spec.rb +12 -2
  29. data/spec/cf/cli/space/switch_space_spec.rb +18 -3
  30. data/spec/cf/cli/start/login_spec.rb +28 -81
  31. data/spec/cf/cli/start/target_spec.rb +33 -32
  32. data/spec/cf/cli/user/register_spec.rb +5 -1
  33. data/spec/cf/cli_spec.rb +21 -1
  34. data/spec/features/account_lifecycle_spec.rb +8 -3
  35. data/spec/features/login_spec.rb +16 -11
  36. data/spec/features/push_flow_spec.rb +26 -11
  37. data/spec/features/switching_targets_spec.rb +42 -2
  38. data/spec/spec_helper.rb +1 -1
  39. data/spec/support/{command_helper.rb → cli_helper.rb} +18 -25
  40. data/spec/support/shared_examples/populate_organization.rb +6 -0
  41. metadata +20 -6
  42. data/lib/cf/cli/start/target_interactions.rb +0 -37
@@ -1,6 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
- command CF::User::Register do
3
+ describe CF::User::Register do
4
+ before do
5
+ stub_client_and_precondition
6
+ end
7
+
4
8
  describe 'metadata' do
5
9
  let(:command) { Mothership.commands[:register] }
6
10
 
@@ -66,7 +66,7 @@ describe CF::CLI do
66
66
  end
67
67
  end
68
68
 
69
- context "with a CFoundry authentication error" do
69
+ context "when CC can't decode the auth token" do
70
70
  let(:action) { proc { raise CFoundry::InvalidAuthToken.new("foo bar") } }
71
71
  let(:asked) { false }
72
72
 
@@ -74,10 +74,30 @@ describe CF::CLI do
74
74
  $cf_asked_auth = asked
75
75
  end
76
76
 
77
+ it "tells the user they are not authenticated" do
78
+ subject
79
+ expect(stdout.string).to include "Invalid authentication token. Try logging in again with 'cf login'"
80
+ end
81
+
82
+ it "exits without attempting to login again" do
83
+ dont_allow(context).invoke(:login)
84
+ subject
85
+ end
86
+ end
87
+
88
+ context "with a CFoundry authentication error" do
89
+ let(:action) { proc { raise CFoundry::Forbidden.new("foo bar") } }
90
+ let(:asked) { false }
91
+
92
+ before do
93
+ $cf_asked_auth = asked
94
+ end
95
+
77
96
  it "tells the user they are not authenticated" do
78
97
  stub(context).invoke(:login)
79
98
  subject
80
99
  expect(stdout.string).to include "Not authenticated! Try logging in:"
100
+ expect($cf_asked_auth).to be_true
81
101
  end
82
102
 
83
103
  it "asks the user to log in" do
@@ -2,7 +2,7 @@ require "spec_helper"
2
2
  require "webmock/rspec"
3
3
  require "ffaker"
4
4
 
5
- if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGET']
5
+ if ENV['CF_V2_RUN_INTEGRATION']
6
6
  describe 'A new user tries to use CF against v2 production', :ruby19 => true do
7
7
  before(:all) do
8
8
  WebMock.allow_net_connect!
@@ -15,6 +15,7 @@ if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGE
15
15
  let(:target) { ENV['CF_V2_TEST_TARGET'] }
16
16
  let(:username) { ENV['CF_V2_TEST_USER'] }
17
17
  let(:password) { ENV['CF_V2_TEST_PASSWORD'] }
18
+ let(:organization) { ENV['CF_V2_TEST_ORGANIZATION'] }
18
19
 
19
20
  let(:client) do
20
21
  client = CFoundry::V2::Client.new("https://#{target}")
@@ -32,6 +33,10 @@ if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGE
32
33
 
33
34
  it "registers a new account and deletes it" do
34
35
  email = Faker::Internet.email
36
+ run("#{cf_bin} logout") do |runner|
37
+ runner.wait_for_exit
38
+ end
39
+
35
40
  run("#{cf_bin} target #{target}") do |runner|
36
41
  runner.wait_for_exit
37
42
  end
@@ -39,7 +44,7 @@ if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGE
39
44
  run("#{cf_bin} login #{username} --password #{password}") do |runner|
40
45
  expect(runner).to say(
41
46
  "Organization>" => proc {
42
- runner.send_keys "pivotal-integration"
47
+ runner.send_keys organization
43
48
  expect(runner).to say /Switching to organization .*\.\.\. OK/
44
49
  },
45
50
  "Switching to organization" => proc {}
@@ -102,5 +107,5 @@ if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGE
102
107
  end
103
108
  end
104
109
  else
105
- $stderr.puts 'Skipping v2 integration specs; please provide $CF_V2_TEST_TARGET, $CF_V2_TEST_USER, and $CF_V2_TEST_PASSWORD'
110
+ $stderr.puts 'Skipping v2 integration specs; please provide environment variables'
106
111
  end
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGET'] && ENV['CF_V2_OTHER_TEST_USER']
3
+ if ENV['CF_V2_RUN_INTEGRATION']
4
4
  describe 'A user logs in and switches spaces, after a different user has logged in', :ruby19 => true do
5
5
  include ConsoleAppSpeckerMatchers
6
6
 
@@ -35,17 +35,22 @@ if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGE
35
35
  before do
36
36
  run("#{cf_bin} login #{username} --password #{password}") do |runner|
37
37
  expect(runner).to say "Authenticating... OK"
38
- expect(runner).to say "Organization>"
39
- runner.send_keys("1")
40
38
 
41
- expect(runner).to say "Switching to organization"
42
- expect(runner).to say "OK"
39
+ expect(runner).to say(
40
+ "Organization>" => proc {
41
+ runner.send_keys "1"
42
+ expect(runner).to say /Switching to organization .*\.\.\. OK/
43
+ },
44
+ "Switching to organization" => proc {}
45
+ )
43
46
 
44
- expect(runner).to say "Space"
45
- runner.send_keys("1")
46
-
47
- expect(runner).to say "Switching to space"
48
- expect(runner).to say "OK"
47
+ expect(runner).to say(
48
+ "Space>" => proc {
49
+ runner.send_keys "1"
50
+ expect(runner).to say /Switching to space .*\.\.\. OK/
51
+ },
52
+ "Switching to space" => proc {}
53
+ )
49
54
 
50
55
  runner.wait_for_exit
51
56
  end
@@ -62,5 +67,5 @@ if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGE
62
67
  end
63
68
  end
64
69
  else
65
- $stderr.puts 'Skipping v2 integration specs; please provide $CF_V2_TEST_TARGET, $CF_V2_TEST_USER, $CF_V2_TEST_PASSWORD, and $CF_V2_OTHER_TEST_USER'
70
+ $stderr.puts 'Skipping v2 integration specs; please provide necessary environment variables'
66
71
  end
@@ -1,7 +1,7 @@
1
1
  require "spec_helper"
2
2
  require "webmock/rspec"
3
3
 
4
- if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGET'] && ENV['CF_V2_OTHER_TEST_ORGANIZATION']
4
+ if ENV['CF_V2_RUN_INTEGRATION']
5
5
  describe 'A new user tries to use CF against v2', :ruby19 => true do
6
6
  include ConsoleAppSpeckerMatchers
7
7
  include CF::Interactive
@@ -9,7 +9,7 @@ if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGE
9
9
  let(:target) { ENV['CF_V2_TEST_TARGET'] }
10
10
  let(:username) { ENV['CF_V2_TEST_USER'] }
11
11
  let(:password) { ENV['CF_V2_TEST_PASSWORD'] }
12
- let(:organization) { ENV['CF_V2_OTHER_TEST_ORGANIZATION'] }
12
+ let(:organization) { ENV['CF_V2_TEST_ORGANIZATION_TWO'] }
13
13
 
14
14
  let(:app) do
15
15
  fuzz = TRAVIS_BUILD_ID.to_s + Time.new.to_f.to_s.gsub(".", "_")
@@ -23,11 +23,15 @@ if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGE
23
23
  end
24
24
 
25
25
  after do
26
- `#{cf_bin} delete #{app} -f --no-script`
26
+ `#{cf_bin} delete #{app} -f -o --no-script`
27
27
  Interact::Progress::Dots.stop!
28
28
  end
29
29
 
30
30
  it 'pushes a simple sinatra app using defaults as much as possible' do
31
+ run("#{cf_bin} logout") do |runner|
32
+ runner.wait_for_exit
33
+ end
34
+
31
35
  run("#{cf_bin} target http://#{target}") do |runner|
32
36
  expect(runner).to say %r{Setting target to http://#{target}... OK}
33
37
  end
@@ -73,10 +77,10 @@ if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGE
73
77
  runner.send_keys ""
74
78
 
75
79
  expect(runner).to say "Custom startup command> "
76
- runner.send_keys "bundle exec ruby main.rb -p $PORT"
80
+ runner.send_keys ""
77
81
 
78
82
  expect(runner).to say "Memory Limit>"
79
- runner.send_keys "64M"
83
+ runner.send_keys "128M"
80
84
 
81
85
  expect(runner).to say "Creating #{app}... OK"
82
86
 
@@ -95,16 +99,16 @@ if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGE
95
99
 
96
100
  # create a service here
97
101
  expect(runner).to say "What kind?>"
98
- runner.send_keys "redis"
102
+ runner.send_keys "mysql"
99
103
 
100
104
  expect(runner).to say "Name?>"
101
105
  runner.send_keys ""
102
106
 
103
107
  expect(runner).to say "Which plan?>"
104
- runner.send_keys "1"
108
+ runner.send_keys "200"
105
109
 
106
- expect(runner).to say /Creating service redis-.* OK/
107
- expect(runner).to say /Binding redis-.* to .+ OK/
110
+ expect(runner).to say /Creating service .+ OK/
111
+ expect(runner).to say /Binding .+ to .+ OK/
108
112
 
109
113
  expect(runner).to say "Create another service?> n"
110
114
  runner.send_keys ""
@@ -125,6 +129,17 @@ if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGE
125
129
  end
126
130
  end
127
131
 
132
+ run("#{cf_bin} services") do |runner|
133
+ expect(runner).to say /name\s+service\s+provider\s+version\s+plan\s+bound apps/
134
+ expect(runner).to say /mysql-.+?\s+ # name
135
+ mysql\s+ # service
136
+ core\s+ # provider
137
+ [\d.]+\s+ # version
138
+ 200\s+ # plan
139
+ #{app} # bound apps
140
+ /x
141
+ end
142
+
128
143
  run("#{cf_bin} delete #{app}") do |runner|
129
144
  expect(runner).to say "Really delete #{app}?>"
130
145
  runner.send_keys "y"
@@ -132,10 +147,10 @@ if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGE
132
147
 
133
148
  expect(runner).to say "Delete orphaned service"
134
149
  runner.send_keys "y"
135
- expect(runner).to say /Deleting redis.* OK/
150
+ expect(runner).to say /Deleting .* OK/
136
151
  end
137
152
  end
138
153
  end
139
154
  else
140
- $stderr.puts 'Skipping v2 integration specs; please provide $CF_V2_TEST_TARGET, $CF_V2_TEST_USER, $CF_V2_TEST_PASSWORD, and $CF_V2_OTHER_TEST_ORGANIZATION'
155
+ $stderr.puts 'Skipping v2 integration specs; please provide necessary environment variables'
141
156
  end
@@ -1,10 +1,15 @@
1
1
  require "spec_helper"
2
2
 
3
- if ENV['CF_V2_TEST_TARGET']
3
+ if ENV['CF_V2_RUN_INTEGRATION']
4
4
  describe 'A new user tries to use CF against v2 production', :ruby19 => true do
5
5
  include ConsoleAppSpeckerMatchers
6
6
 
7
7
  let(:target) { ENV['CF_V2_TEST_TARGET'] }
8
+ let(:username) { ENV['CF_V2_TEST_USER'] }
9
+ let(:password) { ENV['CF_V2_TEST_PASSWORD'] }
10
+ let(:space) { ENV['CF_V2_TEST_SPACE'] }
11
+ let(:space2) { "#{ENV['CF_V2_TEST_SPACE']}-2"}
12
+ let(:organization) { ENV['CF_V2_TEST_ORGANIZATION'] }
8
13
 
9
14
  before do
10
15
  Interact::Progress::Dots.start!
@@ -26,7 +31,42 @@ if ENV['CF_V2_TEST_TARGET']
26
31
  runner.wait_for_exit
27
32
  end
28
33
  end
34
+
35
+ it "can switch organizations and spaces" do
36
+ run("#{cf_bin} logout") do |runner|
37
+ runner.wait_for_exit
38
+ end
39
+
40
+ run("#{cf_bin} login") do |runner|
41
+ expect(runner).to say "Email>"
42
+ runner.send_keys username
43
+
44
+ expect(runner).to say "Password>"
45
+ runner.send_keys password
46
+
47
+ expect(runner).to say "Authenticating... OK"
48
+ end
49
+
50
+ run("#{cf_bin} target -o #{organization}") do |runner|
51
+ expect(runner).to say("Switching to organization #{organization}")
52
+
53
+ expect(runner).to say("Space>")
54
+ runner.send_keys space2
55
+
56
+ runner.wait_for_exit
57
+ end
58
+
59
+ run("#{cf_bin} target -s #{space}") do |runner|
60
+ expect(runner).to say("Switching to space #{space}")
61
+ runner.wait_for_exit
62
+ end
63
+
64
+ run("#{cf_bin} target -s #{space2}") do |runner|
65
+ expect(runner).to say("Switching to space #{space2}")
66
+ runner.wait_for_exit
67
+ end
68
+ end
29
69
  end
30
70
  else
31
- $stderr.puts 'Skipping v2 integration specs; please provide $CF_V2_TEST_TARGET'
71
+ $stderr.puts 'Skipping v2 integration specs; please provide necessary environment variables'
32
72
  end
@@ -44,7 +44,7 @@ RSpec.configure do |c|
44
44
  end
45
45
 
46
46
  c.include FakeHomeDir
47
- c.include CommandHelper
47
+ c.include CliHelper
48
48
  c.include InteractHelper
49
49
  c.include ConfigHelper
50
50
 
@@ -1,35 +1,27 @@
1
- def command(klass, &specs)
2
- describe klass do
3
- let(:stub_precondition?) { true }
4
-
5
- before do
6
- any_instance_of klass do |cli|
7
- stub(cli).precondition if stub_precondition?
8
- stub(cli).client { client }
9
- end
10
- end
1
+ module CliHelper
2
+ def stub_client_and_precondition
3
+ stub_client
4
+ stub_precondition
5
+ end
11
6
 
12
- before(:all) do
13
- klass.class_eval do
14
- def wrap_errors
15
- yield
16
- rescue CF::UserError => e
17
- err e.message
18
- end
19
- end
7
+ def stub_client
8
+ any_instance_of described_class do |cli|
9
+ stub(cli).client { client }
20
10
  end
11
+ end
21
12
 
22
- after(:all) do
23
- klass.class_eval do
24
- remove_method :wrap_errors
25
- end
13
+ def stub_precondition
14
+ any_instance_of described_class do |cli|
15
+ stub(cli).precondition
26
16
  end
17
+ end
27
18
 
28
- class_eval(&specs)
19
+ def wrap_errors
20
+ yield
21
+ rescue CF::UserError => e
22
+ err e.message
29
23
  end
30
- end
31
24
 
32
- module CommandHelper
33
25
  def cf(argv)
34
26
  Mothership.new.exit_status 0
35
27
  stub(CF::CLI).exit { |code| code }
@@ -78,4 +70,5 @@ module CommandHelper
78
70
  dont_allow(cli).invoke *args
79
71
  end
80
72
  end
73
+
81
74
  end
@@ -0,0 +1,6 @@
1
+ shared_examples_for "a_command_that_populates_organization" do
2
+ it "calls the organization populator" do
3
+ mock(CF::Populators::Organization).new(instance_of(Mothership::Inputs)) { mock!.populate_and_save! }
4
+ subject
5
+ end
6
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1.rc3
4
+ version: 0.6.1.rc4
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-03-29 00:00:00.000000000 Z
13
+ date: 2013-04-05 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json_pure
@@ -243,6 +243,11 @@ files:
243
243
  - lib/cf/cli/organization/org.rb
244
244
  - lib/cf/cli/organization/orgs.rb
245
245
  - lib/cf/cli/organization/rename.rb
246
+ - lib/cf/cli/populators/base.rb
247
+ - lib/cf/cli/populators/organization.rb
248
+ - lib/cf/cli/populators/populator_methods.rb
249
+ - lib/cf/cli/populators/space.rb
250
+ - lib/cf/cli/populators/target.rb
246
251
  - lib/cf/cli/route/base.rb
247
252
  - lib/cf/cli/route/map.rb
248
253
  - lib/cf/cli/route/routes.rb
@@ -268,7 +273,6 @@ files:
268
273
  - lib/cf/cli/start/login.rb
269
274
  - lib/cf/cli/start/logout.rb
270
275
  - lib/cf/cli/start/target.rb
271
- - lib/cf/cli/start/target_interactions.rb
272
276
  - lib/cf/cli/start/targets.rb
273
277
  - lib/cf/cli/user/base.rb
274
278
  - lib/cf/cli/user/create.rb
@@ -304,12 +308,16 @@ files:
304
308
  - spec/cf/cli/domain/unmap_spec.rb
305
309
  - spec/cf/cli/organization/orgs_spec.rb
306
310
  - spec/cf/cli/organization/rename_spec.rb
311
+ - spec/cf/cli/populators/organization_spec.rb
312
+ - spec/cf/cli/populators/space_spec.rb
313
+ - spec/cf/cli/populators/target_spec.rb
307
314
  - spec/cf/cli/route/map_spec.rb
308
315
  - spec/cf/cli/route/unmap_spec.rb
309
316
  - spec/cf/cli/service/bind_spec.rb
310
317
  - spec/cf/cli/service/delete_spec.rb
311
318
  - spec/cf/cli/service/rename_spec.rb
312
319
  - spec/cf/cli/service/service_spec.rb
320
+ - spec/cf/cli/service/services_spec.rb
313
321
  - spec/cf/cli/service/unbind_spec.rb
314
322
  - spec/cf/cli/space/create_spec.rb
315
323
  - spec/cf/cli/space/rename_spec.rb
@@ -330,13 +338,14 @@ files:
330
338
  - spec/features/push_flow_spec.rb
331
339
  - spec/features/switching_targets_spec.rb
332
340
  - spec/spec_helper.rb
333
- - spec/support/command_helper.rb
341
+ - spec/support/cli_helper.rb
334
342
  - spec/support/config_helper.rb
335
343
  - spec/support/console_app_specker_matchers.rb
336
344
  - spec/support/fake_home_dir.rb
337
345
  - spec/support/interact_helper.rb
338
346
  - spec/support/shared_examples/errors.rb
339
347
  - spec/support/shared_examples/input.rb
348
+ - spec/support/shared_examples/populate_organization.rb
340
349
  - spec/support/specker_runner.rb
341
350
  - spec/support/tracking_expector.rb
342
351
  - bin/cf
@@ -354,7 +363,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
354
363
  version: '0'
355
364
  segments:
356
365
  - 0
357
- hash: 1521493965711051536
366
+ hash: -2266107112903724844
358
367
  required_rubygems_version: !ruby/object:Gem::Requirement
359
368
  none: false
360
369
  requirements:
@@ -388,12 +397,16 @@ test_files:
388
397
  - spec/cf/cli/domain/unmap_spec.rb
389
398
  - spec/cf/cli/organization/orgs_spec.rb
390
399
  - spec/cf/cli/organization/rename_spec.rb
400
+ - spec/cf/cli/populators/organization_spec.rb
401
+ - spec/cf/cli/populators/space_spec.rb
402
+ - spec/cf/cli/populators/target_spec.rb
391
403
  - spec/cf/cli/route/map_spec.rb
392
404
  - spec/cf/cli/route/unmap_spec.rb
393
405
  - spec/cf/cli/service/bind_spec.rb
394
406
  - spec/cf/cli/service/delete_spec.rb
395
407
  - spec/cf/cli/service/rename_spec.rb
396
408
  - spec/cf/cli/service/service_spec.rb
409
+ - spec/cf/cli/service/services_spec.rb
397
410
  - spec/cf/cli/service/unbind_spec.rb
398
411
  - spec/cf/cli/space/create_spec.rb
399
412
  - spec/cf/cli/space/rename_spec.rb
@@ -414,12 +427,13 @@ test_files:
414
427
  - spec/features/push_flow_spec.rb
415
428
  - spec/features/switching_targets_spec.rb
416
429
  - spec/spec_helper.rb
417
- - spec/support/command_helper.rb
430
+ - spec/support/cli_helper.rb
418
431
  - spec/support/config_helper.rb
419
432
  - spec/support/console_app_specker_matchers.rb
420
433
  - spec/support/fake_home_dir.rb
421
434
  - spec/support/interact_helper.rb
422
435
  - spec/support/shared_examples/errors.rb
423
436
  - spec/support/shared_examples/input.rb
437
+ - spec/support/shared_examples/populate_organization.rb
424
438
  - spec/support/specker_runner.rb
425
439
  - spec/support/tracking_expector.rb