Sha256: 393097e035547921f55c13d7f68489141caebb188ce4d95d1d48926ac9101900

Contents?: true

Size: 1.7 KB

Versions: 49

Compression:

Stored size: 1.7 KB

Contents

require 'spec_helper'

describe 'multistage' do
  before do
    mock_config do
      use_recipes :multistage

      set :default_stage, :development
      stage(:development, :branch => 'develop') { set :foo, 'bar' }
      stage(:production,  :branch => 'master')  { set :foo, 'baz' }
      stage :another_stage, :foo => 'bar'

      task(:example) {}
    end
  end

  it 'uses default stage' do
    cli_execute 'example'
    config.current_stage.should == 'development'
    config.foo.should == 'bar'
  end

  it 'aborts when no stage selected' do
    with_stderr do |output|
      config.unset :default_stage
      expect { cli_execute 'example' }.to raise_error(SystemExit)
      output.should include('No stage specified. Please specify one of: development, production')
    end
  end

  it 'uses specified stage' do
    cli_execute %w[production example]
    config.current_stage.should == 'production'
    config.foo.should == 'baz'
  end

  it 'sets variables from options' do
    cli_execute 'another_stage'
    config.foo.should == 'bar'
  end

  it 'accepts default option' do
    mock_config { stage :to_be_default, :default => true }
    config.default_stage.should == :to_be_default
  end

  context 'with git' do
    before do
      mock_config { use_recipe :git }
    end

    it 'infers stage using local branch' do
      config.stub(:local_branch) { 'master' }
      cli_execute 'example'
      config.current_stage.should == 'production'
      config.branch.should == 'master'
    end

    it 'uses default state when local branch not matches' do
      config.stub(:local_branch) { 'foo' }
      cli_execute 'example'
      config.current_stage.should == 'development'
      config.branch.should == 'develop'
    end
  end
end

Version data entries

49 entries across 49 versions & 2 rubygems

Version Path
capistrano-deploy-management-0.1.47 spec/multistage_spec.rb
capistrano-deploy-management-0.1.46 spec/multistage_spec.rb
capistrano-deploy-management-0.1.45 spec/multistage_spec.rb
capistrano-deploy-management-0.1.44 spec/multistage_spec.rb
capistrano-deploy-management-0.1.43 spec/multistage_spec.rb
capistrano-deploy-management-0.1.42 spec/multistage_spec.rb
capistrano-deploy-management-0.1.41 spec/multistage_spec.rb
capistrano-deploy-management-0.1.40 spec/multistage_spec.rb
capistrano-deploy-management-0.1.39 spec/multistage_spec.rb
capistrano-deploy-management-0.1.38 spec/multistage_spec.rb
capistrano-deploy-management-0.1.37 spec/multistage_spec.rb
capistrano-deploy-management-0.1.36 spec/multistage_spec.rb
capistrano-deploy-management-0.1.35 spec/multistage_spec.rb
capistrano-deploy-management-0.1.34 spec/multistage_spec.rb
capistrano-deploy-management-0.1.33 spec/multistage_spec.rb
capistrano-deploy-management-0.1.32 spec/multistage_spec.rb
capistrano-deploy-management-0.1.31 spec/multistage_spec.rb
capistrano-deploy-management-0.1.30 spec/multistage_spec.rb
capistrano-deploy-management-0.1.29 spec/multistage_spec.rb
capistrano-deploy-management-0.1.28 spec/multistage_spec.rb