spec/jumpup/heroku/configuration_spec.rb in jumpup-heroku-0.0.4 vs spec/jumpup/heroku/configuration_spec.rb in jumpup-heroku-0.0.5
- old
+ new
@@ -1,47 +1,64 @@
require 'spec_helper'
describe Jumpup::Heroku::Configuration do
+
before do
Jumpup::Heroku.configuration = nil
end
+
describe ".configure" do
+
describe "without configuration" do
+
before do
Jumpup::Heroku.configure do |config|
end
end
+
subject do
Jumpup::Heroku.configuration
end
+
its(:app) { should be_nil }
its(:staging_app) { should be_nil }
its(:production_app) { should be_nil }
its(:run_database_tasks) { should be_true }
its(:host) { should == 'heroku.com' }
+ its(:deploy_branch) { should eq('master') }
+ its(:deploy_to_production_branch) { should eq('master') }
end
+
describe "with configurations" do
+
before do
Jumpup::Heroku.configure do |config|
config.app = 'myapp'
config.production_app = 'myapp-production'
config.staging_app = 'myapp-staging'
config.run_database_tasks = false
config.host = 'myhost.com'
end
end
+
subject do
Jumpup::Heroku.configuration
end
+
its(:app) { should eq('myapp') }
its(:staging_app) { should eq('myapp-staging')}
its(:production_app) { should eq('myapp-production') }
its(:run_database_tasks) { should be_false }
its(:host) { should eq('myhost.com') }
+ its(:deploy_branch) { should eq('master') }
+ its(:deploy_to_production_branch) { should eq('production') }
end
+
describe "with multiple accounts" do
+
context "first account" do
+
before { ENV.stub(:[]).with("HEROKU_ACCOUNT").and_return("first") }
before do
Jumpup::Heroku.configure do |config|
config.app = 'myapp'
config.run_database_tasks = false
@@ -53,21 +70,25 @@
second.production_app = 'myapp2-production'
second.staging_app = 'myapp2-staging'
end
end
end
+
subject do
Jumpup::Heroku.configuration
end
+
its(:valid?) { should be_true }
its(:app) { should be_nil }
its(:staging_app) { should eq('myapp1-staging')}
its(:production_app) { should eq('myapp1-production') }
its(:run_database_tasks) { should be_false }
its(:host) { should eq('heroku.first') }
end
+
context "second account with default values" do
+
before { ENV.stub(:[]).with("HEROKU_ACCOUNT").and_return("second") }
before do
Jumpup::Heroku.configure do |config|
config.production_app = 'myapp1-production'
config.staging_app = 'myapp1-staging'
@@ -78,21 +99,25 @@
second.run_database_tasks = false
second.host = 'mysecondhost.com'
end
end
end
+
subject do
Jumpup::Heroku.configuration
end
+
its(:valid?) { should be_true }
its(:app) { should be_nil }
its(:staging_app) { should eq('myapp2-staging')}
its(:production_app) { should eq('myapp2-production') }
its(:run_database_tasks) { should be_false }
its(:host) { should eq('mysecondhost.com') }
end
+
context "other account" do
+
before { ENV.stub(:[]).with("HEROKU_ACCOUNT").and_return("third") }
before do
Jumpup::Heroku.configure do |config|
config.account(:first) do |first|
first.app = 'myapp1'
@@ -105,20 +130,23 @@
second.staging_app = 'myapp2-staging'
end
config.run_database_tasks = false
end
end
+
subject do
Jumpup::Heroku.configuration
end
+
its(:valid?) { should be_false }
its(:app) { should be_nil }
its(:staging_app) { should be_nil }
its(:production_app) { should be_nil }
its(:run_database_tasks) { should be_false }
its(:host) { should eq('heroku.com') }
end
+
context "without heroku accounts installed" do
before { Jumpup::Heroku::Configuration.any_instance.stub(:current_account).and_return(:"") }
before do
Jumpup::Heroku.configure do |config|
config.account(:second) do |second|
@@ -127,20 +155,23 @@
second.staging_app = 'myapp2-staging'
config.run_database_tasks = false
end
end
end
+
subject do
Jumpup::Heroku.configuration
end
+
its(:valid?) { should be_false }
its(:app) { should be_nil }
its(:staging_app) { should be_nil }
its(:production_app) { should be_nil }
its(:run_database_tasks) { should be_true }
its(:host) { should eq('heroku.com') }
end
+
context "without herou accounts installed and default values" do
before { Jumpup::Heroku::Configuration.any_instance.stub(:current_account).and_return(:"") }
before do
Jumpup::Heroku.configure do |config|
config.production_app = 'myapp1-production'
@@ -151,142 +182,187 @@
second.staging_app = 'myapp2-staging'
config.run_database_tasks = false
end
end
end
+
subject do
Jumpup::Heroku.configuration
end
+
its(:valid?) { should be_true }
its(:app) { should be_nil }
its(:staging_app) { should eq('myapp1-staging')}
its(:production_app) { should eq('myapp1-production') }
its(:run_database_tasks) { should be_true }
end
end
end
+
describe "#valid?" do
- describe "with app" do
- before do
- Jumpup::Heroku.configure do |config|
- config.app = 'myapp'
+
+ describe 'app configs' do
+
+ describe "with app" do
+
+ before do
+ Jumpup::Heroku.configure do |config|
+ config.app = 'myapp'
+ end
end
+
+ it 'be valid' do
+ expect(Jumpup::Heroku.configuration).to be_valid
+ end
end
- it 'be valid' do
- expect(Jumpup::Heroku.configuration).to be_valid
- end
- end
- describe "with staging_app and production_app" do
- before do
- Jumpup::Heroku.configure do |config|
- config.production_app = 'myapp-production'
- config.staging_app = 'myapp-staging'
+
+ describe "with staging_app and production_app" do
+
+ before do
+ Jumpup::Heroku.configure do |config|
+ config.production_app = 'myapp-production'
+ config.staging_app = 'myapp-staging'
+ end
end
+
+ it 'be valid' do
+ expect(Jumpup::Heroku.configuration).to be_valid
+ end
end
- it 'be valid' do
- expect(Jumpup::Heroku.configuration).to be_valid
- end
- end
- describe "with app, staging_app and production_app" do
- before do
- Jumpup::Heroku.configure do |config|
- config.app = 'myapp'
- config.production_app = 'myapp-production'
- config.staging_app = 'myapp-staging'
+
+ describe "with app, staging_app and production_app" do
+
+ before do
+ Jumpup::Heroku.configure do |config|
+ config.app = 'myapp'
+ config.production_app = 'myapp-production'
+ config.staging_app = 'myapp-staging'
+ end
end
+
+ it 'not be valid' do
+ expect(Jumpup::Heroku.configuration).to_not be_valid
+ end
end
- it 'not be valid' do
- expect(Jumpup::Heroku.configuration).to_not be_valid
- end
- end
- describe "with staging_app" do
- before do
- Jumpup::Heroku.configure do |config|
- config.staging_app = 'myapp-staging'
+
+ describe "with staging_app" do
+
+ before do
+ Jumpup::Heroku.configure do |config|
+ config.staging_app = 'myapp-staging'
+ end
end
+
+ it 'not be valid' do
+ expect(Jumpup::Heroku.configuration).to_not be_valid
+ end
end
- it 'not be valid' do
- expect(Jumpup::Heroku.configuration).to_not be_valid
- end
- end
- describe "with production_app" do
- before do
- Jumpup::Heroku.configure do |config|
- config.production_app = 'myapp-production'
+
+ describe "with production_app" do
+
+ before do
+ Jumpup::Heroku.configure do |config|
+ config.production_app = 'myapp-production'
+ end
end
+
+ it 'not be valid' do
+ expect(Jumpup::Heroku.configuration).to_not be_valid
+ end
end
- it 'not be valid' do
- expect(Jumpup::Heroku.configuration).to_not be_valid
- end
- end
- describe "with app and production_app" do
- before do
- Jumpup::Heroku.configure do |config|
- config.app = 'myapp'
- config.production_app = 'myapp-production'
+
+ describe "with app and production_app" do
+
+ before do
+ Jumpup::Heroku.configure do |config|
+ config.app = 'myapp'
+ config.production_app = 'myapp-production'
+ end
end
+
+ it 'not be valid' do
+ expect(Jumpup::Heroku.configuration).to_not be_valid
+ end
end
- it 'not be valid' do
- expect(Jumpup::Heroku.configuration).to_not be_valid
- end
- end
- describe "with app and staging_app" do
- before do
- Jumpup::Heroku.configure do |config|
- config.app = 'myapp'
- config.staging_app = 'myapp-staging'
+
+ describe "with app and staging_app" do
+
+ before do
+ Jumpup::Heroku.configure do |config|
+ config.app = 'myapp'
+ config.staging_app = 'myapp-staging'
+ end
end
+
+ it 'not be valid' do
+ expect(Jumpup::Heroku.configuration).to_not be_valid
+ end
end
- it 'not be valid' do
- expect(Jumpup::Heroku.configuration).to_not be_valid
- end
end
- describe "with true run_database_tasks" do
- before do
- Jumpup::Heroku.configure do |config|
- config.app = 'myapp'
- config.run_database_tasks = true
+
+ describe 'run_database_tasks configs' do
+
+ describe "with true run_database_tasks" do
+
+ before do
+ Jumpup::Heroku.configure do |config|
+ config.app = 'myapp'
+ config.run_database_tasks = true
+ end
end
+
+ it 'be valid' do
+ expect(Jumpup::Heroku.configuration).to be_valid
+ end
end
- it 'be valid' do
- expect(Jumpup::Heroku.configuration).to be_valid
- end
- end
- describe "with false run_database_tasks" do
- before do
- Jumpup::Heroku.configure do |config|
- config.app = 'myapp'
- config.run_database_tasks = false
+
+ describe "with false run_database_tasks" do
+
+ before do
+ Jumpup::Heroku.configure do |config|
+ config.app = 'myapp'
+ config.run_database_tasks = false
+ end
end
+
+ it 'be valid' do
+ expect(Jumpup::Heroku.configuration).to be_valid
+ end
end
- it 'be valid' do
- expect(Jumpup::Heroku.configuration).to be_valid
- end
- end
- describe "with invalid run_database_tasks" do
- before do
- Jumpup::Heroku.configure do |config|
- config.app = 'myapp'
- config.run_database_tasks = 'a'
+
+ describe "with invalid run_database_tasks" do
+
+ before do
+ Jumpup::Heroku.configure do |config|
+ config.app = 'myapp'
+ config.run_database_tasks = 'a'
+ end
end
+
+ it 'be valid' do
+ expect(Jumpup::Heroku.configuration).to_not be_valid
+ end
end
- it 'be valid' do
- expect(Jumpup::Heroku.configuration).to_not be_valid
- end
end
+
describe "without configuration" do
+
before do
Jumpup::Heroku.configure do |config|
end
end
+
it 'not be valid' do
expect(Jumpup::Heroku.configuration).to_not be_valid
end
end
+
describe "with configuration nil" do
+
before do
Jumpup::Heroku.configuration = nil
end
+
it 'not be valid' do
pending "The bug is raised when have no config/initialier/heroku-deploy.rb file"
expect(Jumpup::Heroku.configuration).to_not be_valid
end
end