From eed74a9acd4f4747d69a63e1283f3f299a7b6a5f Mon Sep 17 00:00:00 2001 From: Alexandre Barret Date: Mon, 27 Jan 2025 09:38:05 +1300 Subject: [PATCH] E2E tests for rspec-ruby with alias rspec command --- features/rspec-ruby/bin/retest | 3 + features/rspec-ruby/retest/retest_test.rb | 71 ++++++++++++++++++- .../{file_changes_test.rb => file_changes.rb} | 24 ++----- .../retest/retest_test/flags_test.rb | 27 ------- .../retest/retest_test/setup_test.rb | 5 -- 5 files changed, 76 insertions(+), 54 deletions(-) create mode 100755 features/rspec-ruby/bin/retest rename features/rspec-ruby/retest/retest_test/{file_changes_test.rb => file_changes.rb} (80%) delete mode 100644 features/rspec-ruby/retest/retest_test/flags_test.rb delete mode 100644 features/rspec-ruby/retest/retest_test/setup_test.rb diff --git a/features/rspec-ruby/bin/retest b/features/rspec-ruby/bin/retest new file mode 100755 index 00000000..ad671744 --- /dev/null +++ b/features/rspec-ruby/bin/retest @@ -0,0 +1,3 @@ +#!/usr/bin/env sh + +bundle exec rspec $@ \ No newline at end of file diff --git a/features/rspec-ruby/retest/retest_test.rb b/features/rspec-ruby/retest/retest_test.rb index 9ae4b9ae..8565ed1f 100644 --- a/features/rspec-ruby/retest/retest_test.rb +++ b/features/rspec-ruby/retest/retest_test.rb @@ -1,9 +1,74 @@ require 'retest' require_relative 'support/test_helper' require 'minitest/autorun' -require_relative 'retest_test/file_changes_test' -require_relative 'retest_test/flags_test' -require_relative 'retest_test/setup_test' +require_relative 'retest_test/file_changes' $stdout.sync = true +class TestDefaultCommand < Minitest::Test + include RetestHelper + include FileChanges + + def setup + @command = "retest" + end + + def teardown + end_retest + end + + def test_repository_setup + assert_equal :rspec, Retest::Setup.new.type + end + + def test_starting_details + launch_retest @command + + assert_output_matches <<~OUTPUT + Setup: [RSPEC] + Command: 'bundle exec rspec ' + Watcher: [LISTEN] + + Launching Retest... + Ready to refactor! You can make file changes now + OUTPUT + + modify_file('lib/bottles.rb') + + assert_output_matches "Test file: spec/bottles_spec.rb" + end +end + +class TestAliasCommand < Minitest::Test + include RetestHelper + include FileChanges + + def setup + @command = "retest --rspec 'bin/retest '" + end + + def teardown + end_retest + end + + def test_repository_setup + assert_equal :rspec, Retest::Setup.new.type + end + + def test_starting_details + launch_retest @command + + assert_output_matches <<~OUTPUT + Setup: [RSPEC] + Command: 'bin/retest ' + Watcher: [LISTEN] + + Launching Retest... + Ready to refactor! You can make file changes now + OUTPUT + + modify_file('lib/bottles.rb') + + assert_output_matches "Test file: spec/bottles_spec.rb" + end +end diff --git a/features/rspec-ruby/retest/retest_test/file_changes_test.rb b/features/rspec-ruby/retest/retest_test/file_changes.rb similarity index 80% rename from features/rspec-ruby/retest/retest_test/file_changes_test.rb rename to features/rspec-ruby/retest/retest_test/file_changes.rb index c2ce20f7..3e2b234b 100644 --- a/features/rspec-ruby/retest/retest_test/file_changes_test.rb +++ b/features/rspec-ruby/retest/retest_test/file_changes.rb @@ -1,22 +1,8 @@ -class FileChangesTest < Minitest::Test - include RetestHelper - - def setup - @command = 'retest --rspec' - end - - def teardown - end_retest - end - - def test_start_retest - launch_retest @command - - assert_output_matches <<~EXPECTED - Launching Retest... - Ready to refactor! You can make file changes now - EXPECTED - end +module FileChanges + # Don't forget to end_retest in the class + # def teardown + # end_retest + # end def test_modifying_existing_file launch_retest @command diff --git a/features/rspec-ruby/retest/retest_test/flags_test.rb b/features/rspec-ruby/retest/retest_test/flags_test.rb deleted file mode 100644 index 4f775dca..00000000 --- a/features/rspec-ruby/retest/retest_test/flags_test.rb +++ /dev/null @@ -1,27 +0,0 @@ -class FlagTest < Minitest::Test - include RetestHelper - - def setup - end - - def teardown - end_retest - end - - def test_with_no_command - launch_retest 'retest' - - assert_output_matches <<~OUTPUT - Setup: [RSPEC] - Command: 'bundle exec rspec ' - Watcher: [LISTEN] - - Launching Retest... - Ready to refactor! You can make file changes now - OUTPUT - - modify_file('lib/bottles.rb') - - assert_output_matches "Test file: spec/bottles_spec.rb" - end -end \ No newline at end of file diff --git a/features/rspec-ruby/retest/retest_test/setup_test.rb b/features/rspec-ruby/retest/retest_test/setup_test.rb deleted file mode 100644 index 6b797369..00000000 --- a/features/rspec-ruby/retest/retest_test/setup_test.rb +++ /dev/null @@ -1,5 +0,0 @@ -class SetupTest < Minitest::Test - def test_repository_setup - assert_equal :rspec, Retest::Setup.new.type - end -end \ No newline at end of file