From f88685a525ea641082ebf6e7708865fc5096b2c6 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 2 Feb 2023 15:37:41 +0100 Subject: [PATCH] Extract CliTestCase --- test/cli/accessory_test.rb | 20 ++------------------ test/cli/app_test.rb | 20 ++------------------ test/cli/cli_test_case.rb | 24 ++++++++++++++++++++++++ test/cli/main_test.rb | 11 ++--------- test/test_helper.rb | 4 ---- 5 files changed, 30 insertions(+), 49 deletions(-) create mode 100644 test/cli/cli_test_case.rb diff --git a/test/cli/accessory_test.rb b/test/cli/accessory_test.rb index 57551ba7..f3373f84 100644 --- a/test/cli/accessory_test.rb +++ b/test/cli/accessory_test.rb @@ -1,22 +1,6 @@ -require "test_helper" -require "active_support/testing/stream" -require "mrsk/cli" - -class CliAccessoryTest < ActiveSupport::TestCase - include ActiveSupport::Testing::Stream - - setup do - ENV["VERSION"] = "999" - ENV["RAILS_MASTER_KEY"] = "123" - ENV["MYSQL_ROOT_PASSWORD"] = "secret123" - end - - teardown do - ENV.delete("RAILS_MASTER_KEY") - ENV.delete("MYSQL_ROOT_PASSWORD") - ENV.delete("VERSION") - end +require_relative "cli_test_case" +class CliAccessoryTest < CliTestCase test "upload" do assert_match "test/fixtures/files/my.cnf app-mysql/etc/mysql/my.cnf", run_command("upload", "mysql") end diff --git a/test/cli/app_test.rb b/test/cli/app_test.rb index 97dc5dff..727e2616 100644 --- a/test/cli/app_test.rb +++ b/test/cli/app_test.rb @@ -1,22 +1,6 @@ -require "test_helper" -require "active_support/testing/stream" -require "mrsk/cli" - -class CliAppTest < ActiveSupport::TestCase - include ActiveSupport::Testing::Stream - - setup do - ENV["VERSION"] = "999" - ENV["RAILS_MASTER_KEY"] = "123" - ENV["MYSQL_ROOT_PASSWORD"] = "secret123" - end - - teardown do - ENV.delete("RAILS_MASTER_KEY") - ENV.delete("MYSQL_ROOT_PASSWORD") - ENV.delete("VERSION") - end +require_relative "cli_test_case" +class CliAppTest < CliTestCase test "boot" do assert_match /Running docker run -d --restart unless-stopped --name app-999/, run_command("boot") end diff --git a/test/cli/cli_test_case.rb b/test/cli/cli_test_case.rb new file mode 100644 index 00000000..a359da3f --- /dev/null +++ b/test/cli/cli_test_case.rb @@ -0,0 +1,24 @@ +require "test_helper" +require "active_support/testing/stream" +require "mrsk/cli" + +class CliTestCase < ActiveSupport::TestCase + include ActiveSupport::Testing::Stream + + setup do + ENV["VERSION"] = "999" + ENV["RAILS_MASTER_KEY"] = "123" + ENV["MYSQL_ROOT_PASSWORD"] = "secret123" + end + + teardown do + ENV.delete("RAILS_MASTER_KEY") + ENV.delete("MYSQL_ROOT_PASSWORD") + ENV.delete("VERSION") + end + + private + def stdouted + capture(:stdout) { yield }.strip + end +end diff --git a/test/cli/main_test.rb b/test/cli/main_test.rb index e7aaf958..9abac435 100644 --- a/test/cli/main_test.rb +++ b/test/cli/main_test.rb @@ -1,13 +1,6 @@ -require "test_helper" -require "active_support/testing/stream" -require "mrsk/cli" - -class CliMainTest < ActiveSupport::TestCase - include ActiveSupport::Testing::Stream - - setup do - end +require_relative "cli_test_case" +class CliMainTest < CliTestCase test "version" do version = stdouted { Mrsk::Cli::Main.new.version } assert_equal Mrsk::VERSION, version diff --git a/test/test_helper.rb b/test/test_helper.rb index de212032..7f8eaddc 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -9,8 +9,4 @@ ActiveSupport::LogSubscriber.logger = ActiveSupport::Logger.new(STDOUT) if ENV[" SSHKit.config.backend = SSHKit::Backend::Printer class ActiveSupport::TestCase - private - def stdouted - capture(:stdout) { yield }.strip - end end