From f6a9d54902675a55d9725cadcef49512b85ffa05 Mon Sep 17 00:00:00 2001 From: Nick Lozon Date: Tue, 12 Dec 2023 15:07:29 -0500 Subject: [PATCH] unit test --- test/cli/accessory_test.rb | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/cli/accessory_test.rb b/test/cli/accessory_test.rb index c4cf4828..eb40847a 100644 --- a/test/cli/accessory_test.rb +++ b/test/cli/accessory_test.rb @@ -148,6 +148,30 @@ class CliAccessoryTest < CliTestCase assert_match "rm -rf app-mysql", run_command("remove_service_directory", "mysql") end + test "hosts param respected" do + Kamal::Cli::Accessory.any_instance.expects(:directories).with("redis") + Kamal::Cli::Accessory.any_instance.expects(:upload).with("redis") + + run_command("boot", "redis", "--hosts", "1.1.1.1").tap do |output| + assert_match /docker login.*on 1.1.1.1/, output + refute_match /docker login.*on 1.1.1.2/, output + assert_match "docker run --name app-redis --detach --restart unless-stopped --log-opt max-size=\"10m\" --publish 6379:6379 --env-file .kamal/env/accessories/app-redis.env --volume $PWD/app-redis/data:/data --label service=\"app-redis\" redis:latest on 1.1.1.1", output + refute_match "docker run --name app-redis --detach --restart unless-stopped --log-opt max-size=\"10m\" --publish 6379:6379 --env-file .kamal/env/accessories/app-redis.env --volume $PWD/app-redis/data:/data --label service=\"app-redis\" redis:latest on 1.1.1.2", output + end + end + + test "hosts param intersects hosts" do + Kamal::Cli::Accessory.any_instance.expects(:directories).with("redis") + Kamal::Cli::Accessory.any_instance.expects(:upload).with("redis") + + run_command("boot", "redis", "--hosts", "1.1.1.1,1.1.1.3").tap do |output| + assert_match /docker login.*on 1.1.1.1/, output + refute_match /docker login.*on 1.1.1.3/, output + assert_match "docker run --name app-redis --detach --restart unless-stopped --log-opt max-size=\"10m\" --publish 6379:6379 --env-file .kamal/env/accessories/app-redis.env --volume $PWD/app-redis/data:/data --label service=\"app-redis\" redis:latest on 1.1.1.1", output + refute_match "docker run --name app-redis --detach --restart unless-stopped --log-opt max-size=\"10m\" --publish 6379:6379 --env-file .kamal/env/accessories/app-redis.env --volume $PWD/app-redis/data:/data --label service=\"app-redis\" redis:latest on 1.1.1.3", output + end + end + private def run_command(*command) stdouted { Kamal::Cli::Accessory.start([*command, "-c", "test/fixtures/deploy_with_accessories.yml"]) }