tddium-preview 0.6.6 → 0.6.7

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.
data/lib/tddium.rb CHANGED
@@ -307,7 +307,7 @@ class Tddium < Thor
307
307
  current_suite = call_api(:get, current_suite_path)["suite"]
308
308
 
309
309
  say Text::Process::EXISTING_SUITE % format_suite_details(current_suite)
310
- #prompt_update_suite(current_suite, options)
310
+ prompt_update_suite(current_suite, options)
311
311
  else
312
312
  params[:branch] = current_git_branch
313
313
  default_suite_name = File.basename(Dir.pwd)
@@ -319,14 +319,9 @@ class Tddium < Thor
319
319
  # Write to file and exit when using the existing suite
320
320
  write_suite(existing_suite["id"])
321
321
  say Text::Status::USING_SUITE % format_suite_details(existing_suite)
322
- #prompt_update_suite(existing_suite, options)
323
322
  return
324
323
  end
325
324
 
326
- params[:ruby_version] = dependency_version(:ruby)
327
- params[:bundler_version] = dependency_version(:bundle)
328
- params[:rubygems_version] = dependency_version(:gem)
329
-
330
325
  prompt_suite_params(options, params)
331
326
 
332
327
  # Create new suite if it does not exist yet
@@ -452,6 +447,7 @@ class Tddium < Thor
452
447
  say Text::Process::HEROKU_WELCOME % heroku_config['TDDIUM_USER_NAME']
453
448
 
454
449
  if user["user"]["heroku_needs_activation"] == true
450
+ say Text::Process::HEROKU_ACTIVATE
455
451
  params = get_user_credentials(:email => heroku_config['TDDIUM_USER_NAME'])
456
452
  params.delete(:email)
457
453
  params[:password_confirmation] = HighLine.ask(Text::Prompt::PASSWORD_CONFIRMATION) { |q| q.echo = "*" }
@@ -494,21 +490,40 @@ class Tddium < Thor
494
490
  data
495
491
  end
496
492
 
497
- def prompt_suite_params(options, params)
498
- params[:test_pattern] = prompt(Text::Prompt::TEST_PATTERN, options[:test_pattern], Default::SUITE_TEST_PATTERN)
499
- if prompt(Text::Prompt::ENABLE_CI, options[:pull_url] ? 'y' : nil, 'n') == Text::Prompt::Response::YES
500
- params[:ci_pull_url] = prompt(Text::Prompt::CI_PULL_URL, options[:pull_url], nil)
501
- params[:ci_push_url] = prompt(Text::Prompt::CI_PUSH_URL, options[:push_url], nil)
502
- if prompt(Text::Prompt::ENABLE_CAMPFIRE, nil, 'n') == Text::Prompt::Response::YES
503
- params[:campfire_subdomain] = prompt(Text::Prompt::CAMPFIRE_SUBDOMAIN, options[:campfire_subdomain], nil)
504
- params[:campfire_token] = prompt(Text::Prompt::CAMPFIRE_TOKEN, options[:campfire_token], nil)
505
- params[:campfire_room] = prompt(Text::Prompt::CAMPFIRE_ROOM, options[:campfire_room], nil)
493
+ def prompt_suite_params(options, params, current={})
494
+ params[:ruby_version] = dependency_version(:ruby)
495
+ params[:bundler_version] = dependency_version(:bundle)
496
+ params[:rubygems_version] = dependency_version(:gem)
497
+
498
+ ask_or_update = lambda do |key, text, default|
499
+ params[key] = prompt(text, options[key], current.fetch(key.to_s, default))
500
+ end
501
+
502
+ ask_subsection = lambda do |key, text|
503
+ current[key.to_s] ||
504
+ prompt(text, options[key] ? 'y' : nil, 'n') == Text::Prompt::Response::YES
505
+ end
506
+
507
+ ask_or_update.call(:test_pattern, Text::Prompt::TEST_PATTERN, Default::SUITE_TEST_PATTERN)
508
+
509
+ if ask_subsection.call(:ci_pull_url, Text::Prompt::ENABLE_CI)
510
+ ask_or_update.call(:ci_pull_url, Text::Prompt::CI_PULL_URL, nil)
511
+ ask_or_update.call(:ci_push_url, Text::Prompt::CI_PUSH_URL, nil)
512
+ if ask_subsection.call(:campfire_subdomain, Text::Prompt::ENABLE_CAMPFIRE)
513
+ ask_or_update.call(:campfire_subdomain, Text::Prompt::CAMPFIRE_SUBDOMAIN, nil)
514
+ ask_or_update.call(:campfire_token, Text::Prompt::CAMPFIRE_TOKEN, nil)
515
+ ask_or_update.call(:campfire_room, Text::Prompt::CAMPFIRE_ROOM, nil)
506
516
  end
507
517
  end
508
518
  end
509
519
 
510
- def prompt_update_suite(api_response, options)
511
- say Text::Prompt::UPDATE_SUITE
520
+ def prompt_update_suite(suite, options)
521
+ if prompt(Text::Prompt::UPDATE_SUITE, nil, 'n') == Text::Prompt::Response::YES
522
+ params = {}
523
+ prompt_suite_params(options, params, suite)
524
+ call_api(:put, "#{Api::Path::SUITES}/#{suite['id']}", params)
525
+ say Text::Process::UPDATED_SUITE
526
+ end
512
527
  end
513
528
 
514
529
  def resolve_suite_name(options, params, default_suite_name)
@@ -60,12 +60,12 @@ module TddiumConstant
60
60
  TEST_PATTERN = "Enter a test pattern or press 'Return'. Using '%s' by default:"
61
61
  ENABLE_CI = "Do you want to configure Hosted Continuous Integration?"
62
62
  UPDATE_SUITE = "Do you want to edit settings for this suite?"
63
- CI_PULL_URL = "Enter a git URL to pull from:"
64
- CI_PUSH_URL = "Enter a git URL to push when tests pass (blank to disable):"
63
+ CI_PULL_URL = "Enter a git URL to pull from (default '%s'):"
64
+ CI_PUSH_URL = "Push to git URL on tests pass (unset=disable) (default '%s'):"
65
65
  ENABLE_CAMPFIRE = "Setup Campfire CI notifications?"
66
- CAMPFIRE_SUBDOMAIN = "Enter your Campfire subdomain:"
67
- CAMPFIRE_ROOM = "Enter the Campfire room name:"
68
- CAMPFIRE_TOKEN = "Enter your Campfire API Token:"
66
+ CAMPFIRE_SUBDOMAIN = "Enter your Campfire subdomain (default '%s'):"
67
+ CAMPFIRE_ROOM = "Enter the Campfire room name (default '%s'):"
68
+ CAMPFIRE_TOKEN = "Enter your Campfire API Token (default '%s'):"
69
69
  end
70
70
 
71
71
  module Process
@@ -108,10 +108,13 @@ Thanks for installing the Tddium Heroku Add-On!
108
108
 
109
109
  Your tddium username is: %s
110
110
 
111
+ "
112
+ HEROKU_ACTIVATE = "
111
113
  Next, set a password and provide an SSH key to authenticate your communication
112
114
  with Tddium.
113
-
114
115
  "
116
+ UPDATED_SUITE = "Updated suite successfully."
117
+
115
118
  end
116
119
 
117
120
  module Status
data/lib/tddium/heroku.rb CHANGED
@@ -33,6 +33,7 @@ class HerokuConfig
33
33
  line.chomp!
34
34
  k, v = line.split('=')
35
35
  if k =~ /^TDDIUM_/ && v.length > 0
36
+ k.sub!("TDDIUM_STAGE", "TDDIUM")
36
37
  config[k] = v
37
38
  end
38
39
  end
@@ -3,5 +3,5 @@ Copyright (c) 2011 Solano Labs All Rights Reserved
3
3
  =end
4
4
 
5
5
  module TddiumVersion
6
- VERSION = "0.6.6"
6
+ VERSION = "0.6.7"
7
7
  end
data/spec/tddium_spec.rb CHANGED
@@ -1324,6 +1324,28 @@ describe Tddium do
1324
1324
  tddium.stub(:ask).and_return("")
1325
1325
  end
1326
1326
 
1327
+ shared_examples_for "prompting for suite configuration" do
1328
+ context "enable ci and campfire" do
1329
+ before do
1330
+ tddium.stub(:ask).with(Tddium::Text::Prompt::ENABLE_CI).and_return(Tddium::Text::Prompt::Response::YES)
1331
+ tddium.stub(:ask).with(Tddium::Text::Prompt::ENABLE_CAMPFIRE).and_return(Tddium::Text::Prompt::Response::YES)
1332
+ end
1333
+
1334
+ it "should prompt for URLs" do
1335
+ tddium.should_receive(:ask).with(Tddium::Text::Prompt::CI_PULL_URL % current['ci_pull_url'])
1336
+ tddium.should_receive(:ask).with(Tddium::Text::Prompt::CI_PUSH_URL % current['ci_push_url'])
1337
+ run_suite(tddium)
1338
+ end
1339
+
1340
+ it "should prompt for campfire" do
1341
+ tddium.should_receive(:ask).with(Tddium::Text::Prompt::CAMPFIRE_SUBDOMAIN % current['campfire_subdomain'])
1342
+ tddium.should_receive(:ask).with(Tddium::Text::Prompt::CAMPFIRE_TOKEN % current['campfire_token'])
1343
+ tddium.should_receive(:ask).with(Tddium::Text::Prompt::CAMPFIRE_ROOM % current['campfire_room'])
1344
+ run_suite(tddium)
1345
+ end
1346
+ end
1347
+ end
1348
+
1327
1349
  it_should_behave_like "set the default environment"
1328
1350
  it_should_behave_like "sending the api key"
1329
1351
  it_should_behave_like "git repo has not been initialized"
@@ -1497,24 +1519,8 @@ describe Tddium do
1497
1519
  end
1498
1520
  end
1499
1521
 
1500
- context "enable ci and campfire" do
1501
- before do
1502
- tddium.stub(:ask).with(Tddium::Text::Prompt::ENABLE_CI).and_return(Tddium::Text::Prompt::Response::YES)
1503
- tddium.stub(:ask).with(Tddium::Text::Prompt::ENABLE_CAMPFIRE).and_return(Tddium::Text::Prompt::Response::YES)
1504
- end
1505
-
1506
- it "should prompt for URLs" do
1507
- tddium.should_receive(:ask).with(Tddium::Text::Prompt::CI_PULL_URL)
1508
- tddium.should_receive(:ask).with(Tddium::Text::Prompt::CI_PUSH_URL)
1509
- run_suite(tddium)
1510
- end
1511
-
1512
- it "should prompt for campfire" do
1513
- tddium.should_receive(:ask).with(Tddium::Text::Prompt::CAMPFIRE_SUBDOMAIN)
1514
- tddium.should_receive(:ask).with(Tddium::Text::Prompt::CAMPFIRE_TOKEN)
1515
- tddium.should_receive(:ask).with(Tddium::Text::Prompt::CAMPFIRE_ROOM)
1516
- run_suite(tddium)
1517
- end
1522
+ it_behaves_like "prompting for suite configuration" do
1523
+ let(:current) { {} }
1518
1524
  end
1519
1525
  end
1520
1526
 
@@ -1541,6 +1547,7 @@ describe Tddium do
1541
1547
  context "'GET #{Tddium::Api::Path::SUITES}/#{SAMPLE_SUITE_ID}' is successful" do
1542
1548
  before(:each) do
1543
1549
  stub_call_api_response(:get, "#{Tddium::Api::Path::SUITES}/#{SAMPLE_SUITE_ID}", {"suite"=>SAMPLE_SUITE_RESPONSE})
1550
+ stub_call_api_response(:put, "#{Tddium::Api::Path::SUITES}/#{SAMPLE_SUITE_ID}", {"status"=>0})
1544
1551
  end
1545
1552
 
1546
1553
  it "should not ask for a suite name" do
@@ -1559,6 +1566,24 @@ describe Tddium do
1559
1566
  run_suite(tddium)
1560
1567
  end
1561
1568
 
1569
+ it "should check if the user wants to update the suite" do
1570
+ tddium.should_receive(:ask).with(Tddium::Text::Prompt::UPDATE_SUITE)
1571
+ run_suite(tddium)
1572
+ end
1573
+
1574
+ context "user wants to update the suite" do
1575
+ before(:each) do
1576
+ tddium.stub(:ask).with(Tddium::Text::Prompt::UPDATE_SUITE).and_return(Tddium::Text::Prompt::Response::YES)
1577
+ end
1578
+ it_behaves_like "prompting for suite configuration" do
1579
+ let(:current) { SAMPLE_SUITE_RESPONSE }
1580
+ end
1581
+ it "should PUT to /suites/#{SAMPLE_SUITE_ID}" do
1582
+ call_api_should_receive(:method=>:put, :path=>"#{Tddium::Api::Path::SUITES}/#{SAMPLE_SUITE_ID}")
1583
+ run_suite(tddium)
1584
+ end
1585
+ end
1586
+
1562
1587
  it_should_behave_like "sending the api key"
1563
1588
  it_should_behave_like "an unsuccessful api call"
1564
1589
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: tddium-preview
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.6.6
5
+ version: 0.6.7
6
6
  platform: ruby
7
7
  authors:
8
8
  - Solano Labs
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-06-16 00:00:00 -07:00
13
+ date: 2011-06-17 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency