Pass around Roles instead of Strings
Avoid looking up roles by names everywhere. This avoids the awkward role/role_config naming as well.
This commit is contained in:
@@ -83,14 +83,14 @@ class CommanderTest < ActiveSupport::TestCase
|
||||
end
|
||||
|
||||
test "primary_role" do
|
||||
assert_equal "web", @kamal.primary_role
|
||||
assert_equal "web", @kamal.primary_role.name
|
||||
@kamal.specific_roles = "workers"
|
||||
assert_equal "workers", @kamal.primary_role
|
||||
assert_equal "workers", @kamal.primary_role.name
|
||||
end
|
||||
|
||||
test "roles_on" do
|
||||
assert_equal [ "web" ], @kamal.roles_on("1.1.1.1")
|
||||
assert_equal [ "workers" ], @kamal.roles_on("1.1.1.3")
|
||||
assert_equal [ "web" ], @kamal.roles_on("1.1.1.1").map(&:name)
|
||||
assert_equal [ "workers" ], @kamal.roles_on("1.1.1.3").map(&:name)
|
||||
end
|
||||
|
||||
test "default group strategy" do
|
||||
@@ -120,7 +120,7 @@ class CommanderTest < ActiveSupport::TestCase
|
||||
|
||||
@kamal.specific_roles = [ "web_*" ]
|
||||
assert_equal [ "web_chicago", "web_tokyo" ], @kamal.roles.map(&:name)
|
||||
assert_equal "web_tokyo", @kamal.primary_role
|
||||
assert_equal "web_tokyo", @kamal.primary_role.name
|
||||
assert_equal "1.1.1.3", @kamal.primary_host
|
||||
end
|
||||
|
||||
|
||||
@@ -400,6 +400,7 @@ class CommandsAppTest < ActiveSupport::TestCase
|
||||
|
||||
private
|
||||
def new_command(role: "web", **additional_config)
|
||||
Kamal::Commands::App.new(Kamal::Configuration.new(@config.merge(additional_config), destination: @destination, version: "999"), role: role)
|
||||
config = Kamal::Configuration.new(@config.merge(additional_config), destination: @destination, version: "999")
|
||||
Kamal::Commands::App.new(config, role: config.role(role))
|
||||
end
|
||||
end
|
||||
|
||||
@@ -300,14 +300,14 @@ class ConfigurationTest < ActiveSupport::TestCase
|
||||
end
|
||||
|
||||
test "primary role" do
|
||||
assert_equal "web", @config.primary_role
|
||||
assert_equal "web", @config.primary_role.name
|
||||
|
||||
config = Kamal::Configuration.new(@deploy_with_roles.deep_merge({
|
||||
servers: { "alternate_web" => { "hosts" => [ "1.1.1.4", "1.1.1.5" ] } },
|
||||
primary_role: "alternate_web" } ))
|
||||
|
||||
|
||||
assert_equal "alternate_web", config.primary_role
|
||||
assert_equal "alternate_web", config.primary_role.name
|
||||
assert_equal "1.1.1.4", config.primary_host
|
||||
assert config.role(:alternate_web).primary?
|
||||
assert config.role(:alternate_web).running_traefik?
|
||||
|
||||
Reference in New Issue
Block a user