From 2e5ca51531fd39d7478b13ab094ab5ae1da4188c Mon Sep 17 00:00:00 2001 From: Richard Garbutt Date: Fri, 30 Jun 2023 10:08:45 +0100 Subject: [PATCH] Add minitest support for file exclude pattern * Issue https://github.com/renderedtext/test-boosters/pull/72 * Based on rspec support added here https://github.com/renderedtext/test-boosters/pull/72 * Adds support for minitest include and exclude patterns based on `TEST_BOOSTERS_MINITEST_TEST_FILE_PATTERN` and `TEST_BOOSTERS_MINITEST_TEST_EXCLUDE_PATTERN` env vars. --- lib/test_boosters/boosters/minitest.rb | 10 ++++- .../test_boosters/boosters/minitest_spec.rb | 39 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/lib/test_boosters/boosters/minitest.rb b/lib/test_boosters/boosters/minitest.rb index 9b939a5..5dda317 100644 --- a/lib/test_boosters/boosters/minitest.rb +++ b/lib/test_boosters/boosters/minitest.rb @@ -5,7 +5,7 @@ class Minitest < Base FILE_PATTERN = "test/**/*_test.rb".freeze def initialize - super(FILE_PATTERN, nil, split_configuration_path, command) + super(file_pattern, exclude_pattern, split_configuration_path, command) end def command @@ -30,6 +30,14 @@ def command_from_env_var ENV["MINITEST_BOOSTER_COMMAND"].to_s end + def file_pattern + ENV["TEST_BOOSTERS_MINITEST_TEST_FILE_PATTERN"] || FILE_PATTERN + end + + def exclude_pattern + ENV["TEST_BOOSTERS_MINITEST_TEST_EXCLUDE_PATTERN"] + end + private def rails_app? diff --git a/spec/lib/test_boosters/boosters/minitest_spec.rb b/spec/lib/test_boosters/boosters/minitest_spec.rb index 6776c5c..addff6c 100644 --- a/spec/lib/test_boosters/boosters/minitest_spec.rb +++ b/spec/lib/test_boosters/boosters/minitest_spec.rb @@ -56,4 +56,43 @@ end end end + + describe "#file_pattern" do + before { ENV["TEST_BOOSTERS_MINITEST_TEST_FILE_PATTERN"] = "test/system/**/*_test.rb" } + + context "when the TEST_BOOSTERS_MINITEST_TEST_FILE_PATTERN environment variable is set" do + it "returns its values" do + expect(booster.file_pattern).to eq("test/system/**/*_test.rb") + end + end + + context "when the TEST_BOOSTERS_MINITEST_TEST_FILE_PATTERN environment variable is not set" do + before { ENV.delete("TEST_BOOSTERS_MINITEST_TEST_FILE_PATTERN") } + + it "returns the default minitest path" do + expect(booster.file_pattern).to eq("test/**/*_test.rb") + end + end + end + + describe "#exclude_pattern" do + before do + ENV["TEST_BOOSTERS_MINITEST_TEST_EXCLUDE_PATTERN"] = + "test/system/**/*_test.rb" + end + + context "when the TEST_BOOSTERS_MINITEST_TEST_EXCLUDE_PATTERN environment variable is set" do + it "returns its values" do + expect(booster.exclude_pattern).to eq("test/system/**/*_test.rb") + end + end + + context "when the TEST_BOOSTERS_MINITEST_TEST_FILE_PATTERN environment variable is not set" do + before { ENV.delete("TEST_BOOSTERS_MINITEST_TEST_EXCLUDE_PATTERN") } + + it "returns nil" do + expect(booster.exclude_pattern).to be_nil + end + end + end end