51 lines
1.5 KiB
Ruby
51 lines
1.5 KiB
Ruby
require "test_helper"
|
|
|
|
class CommanderTest < ActiveSupport::TestCase
|
|
setup do
|
|
@mrsk = Mrsk::Commander.new config_file: Pathname.new(File.expand_path("fixtures/deploy_with_roles.yml", __dir__))
|
|
end
|
|
|
|
test "lazy configuration" do
|
|
assert_equal Mrsk::Configuration, @mrsk.config.class
|
|
end
|
|
|
|
test "commit hash as version" do
|
|
assert_equal `git rev-parse HEAD`.strip, @mrsk.config.version
|
|
end
|
|
|
|
test "commit hash as version but not in git" do
|
|
@mrsk.expects(:system).with("git rev-parse").returns(nil)
|
|
error = assert_raises(RuntimeError) { @mrsk.config }
|
|
assert_match /no git repository found/, error.message
|
|
end
|
|
|
|
test "overwriting hosts" do
|
|
assert_equal [ "1.1.1.1", "1.1.1.2", "1.1.1.3", "1.1.1.4" ], @mrsk.hosts
|
|
|
|
@mrsk.specific_hosts = [ "1.2.3.4", "1.2.3.5" ]
|
|
assert_equal [ "1.2.3.4", "1.2.3.5" ], @mrsk.hosts
|
|
end
|
|
|
|
test "overwriting hosts with roles" do
|
|
assert_equal [ "1.1.1.1", "1.1.1.2", "1.1.1.3", "1.1.1.4" ], @mrsk.hosts
|
|
|
|
@mrsk.specific_roles = [ "workers", "web" ]
|
|
assert_equal [ "1.1.1.1", "1.1.1.2", "1.1.1.3", "1.1.1.4" ], @mrsk.hosts
|
|
|
|
@mrsk.specific_roles = [ "workers" ]
|
|
assert_equal [ "1.1.1.3", "1.1.1.4" ], @mrsk.hosts
|
|
end
|
|
|
|
test "overwriting hosts with primary" do
|
|
assert_equal [ "1.1.1.1", "1.1.1.2", "1.1.1.3", "1.1.1.4" ], @mrsk.hosts
|
|
|
|
@mrsk.specific_primary!
|
|
assert_equal [ "1.1.1.1" ], @mrsk.hosts
|
|
end
|
|
|
|
test "primary_host with specific hosts via role" do
|
|
@mrsk.specific_roles = "web"
|
|
assert_equal "1.1.1.1", @mrsk.primary_host
|
|
end
|
|
end
|