test_launcher 2.20.0 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/lib/test_launcher/frameworks/minitest.rb +7 -2
  3. data/lib/test_launcher/search/git.rb +2 -1
  4. data/lib/test_launcher/version.rb +1 -1
  5. data/test_launcher.gemspec +1 -1
  6. metadata +3 -60
  7. data/.gitignore +0 -16
  8. data/Gemfile +0 -8
  9. data/README.md +0 -419
  10. data/Rakefile +0 -9
  11. data/test/install +0 -3
  12. data/test/test_helper.rb +0 -65
  13. data/test/test_helpers/integration_helper.rb +0 -33
  14. data/test/test_helpers/mock.rb +0 -59
  15. data/test/test_helpers/mock_searcher.rb +0 -1
  16. data/test/test_helpers/mocks.rb +0 -77
  17. data/test/test_helpers/mocks/searcher_mock.rb +0 -84
  18. data/test/test_launcher/cli/input_parser_test.rb +0 -79
  19. data/test/test_launcher/ex_unit_integration_test.rb +0 -413
  20. data/test/test_launcher/frameworks/implementation/test_case_test.rb +0 -73
  21. data/test/test_launcher/frameworks/minitest/runner_test.rb +0 -76
  22. data/test/test_launcher/frameworks/minitest/searcher_test.rb +0 -109
  23. data/test/test_launcher/frameworks/rspec/runner_test.rb +0 -83
  24. data/test/test_launcher/frameworks/rspec/searcher_test.rb +0 -54
  25. data/test/test_launcher/generic_integration_test.rb +0 -62
  26. data/test/test_launcher/minitest_integration_test.rb +0 -683
  27. data/test/test_launcher/queries/example_name_query_test.rb +0 -221
  28. data/test/test_launcher/queries/full_regex_query_test.rb +0 -153
  29. data/test/test_launcher/queries/generic_query_test.rb +0 -23
  30. data/test/test_launcher/queries/line_number_query_test.rb +0 -107
  31. data/test/test_launcher/queries/multi_path_query_test.rb +0 -126
  32. data/test/test_launcher/queries/path_query_test.rb +0 -192
  33. data/test/test_launcher/rspec_integration_test.rb +0 -574
  34. data/test/test_launcher/rubymine_test.rb +0 -65
  35. data/test/test_launcher/search/ag_test.rb +0 -42
  36. data/test/test_launcher/search/git_test.rb +0 -41
@@ -1,73 +0,0 @@
1
- require "test_helper"
2
- require "test_launcher/frameworks/implementation/test_case"
3
-
4
-
5
- module TestLauncher
6
- module Frameworks
7
- module Implementation
8
- class TestCaseTest < ::TestCase
9
- class DummyTestCase < Implementation::TestCase
10
- def initialize(file:)
11
- super(file: file, request: nil)
12
- end
13
-
14
- def test_root_dir_name
15
- "test"
16
- end
17
- end
18
-
19
- def test_app_root__one_test_dir
20
- test_case = DummyTestCase.new(file: "/path/root/test/thing_test.rb")
21
-
22
- assert_equal "/path/root", test_case.app_root
23
- end
24
-
25
- def test_app_root__multiple_test_dirs__find_gemfile
26
- test_case = DummyTestCase.new(file: "/path/root/test/inline_gem/test/thing_test.rb")
27
-
28
- Dir.stubs(:entries).with("/path/root").returns([".", "..", "Gemfile", "other_stuff.rb"])
29
- Dir.stubs(:entries).with("/path/root/test/inline_gem").returns([".", "..", "other_stuff.rb"])
30
-
31
- assert_equal "/path/root", test_case.app_root
32
- end
33
-
34
- def test_app_root__multiple_test_dirs__find_gemspec
35
- test_case = DummyTestCase.new(file: "/path/root/test/inline_gem/test/thing_test.rb")
36
-
37
- Dir.stubs(:entries).with("/path/root").returns([".", "..", "gem.gemspec", "other_stuff.rb"])
38
- Dir.stubs(:entries).with("/path/root/test/inline_gem").returns([".", "..", "other_stuff.rb"])
39
-
40
- assert_equal "/path/root", test_case.app_root
41
- end
42
-
43
- def test_app_root__multiple_test_dirs__find_configru
44
- test_case = DummyTestCase.new(file: "/path/root/test/dummy/test/thing_test.rb")
45
-
46
- Dir.stubs(:entries).with("/path/root").returns([".", "..", "gem.gemspec", "other_stuff.rb"])
47
- Dir.stubs(:entries).with("/path/root/test").returns([".", "..", "other_stuff.rb"])
48
- Dir.stubs(:entries).with("/path/root/test/dummy").returns([".", "..", "config.ru"])
49
-
50
- assert_equal "/path/root/test/dummy", test_case.app_root
51
- end
52
-
53
- def test_app_root__multiple_test_dirs__prefers_deeply_nested_dirs
54
- test_case = DummyTestCase.new(file: "/path/root/test/inline_gem/test/thing_test.rb")
55
-
56
- Dir.stubs(:entries).with("/path/root").returns(["Gemfile"])
57
- Dir.stubs(:entries).with("/path/root/test/inline_gem").returns(["Gemfile"])
58
-
59
- assert_equal "/path/root/test/inline_gem", test_case.app_root
60
- end
61
-
62
- def test_app_root__multiple_test_dirs__finds_no_info__defaults_outward
63
- test_case = DummyTestCase.new(file: "/path/root/test/inline_gem/test/thing_test.rb")
64
-
65
- Dir.stubs(:entries).with("/path/root").returns([".", ".."])
66
- Dir.stubs(:entries).with("/path/root/test/inline_gem").returns([".", ".."])
67
-
68
- assert_equal "/path/root", test_case.app_root
69
- end
70
- end
71
- end
72
- end
73
- end
@@ -1,76 +0,0 @@
1
- require "test_helper"
2
- require "test_helpers/mocks"
3
- require "test_launcher/frameworks/minitest"
4
-
5
- module TestLauncher
6
- module Frameworks
7
- module Minitest
8
- class RunnerTest < ::TestCase
9
-
10
- class MockTestCase < Mock
11
- mocks Minitest::TestCase
12
- end
13
-
14
- def test_single_example
15
- test_case = MockTestCase.new(
16
- example: "example_name",
17
- app_root: "app_root",
18
- example_runner: "example_runner",
19
- file: "file",
20
- spring_enabled?: false
21
- )
22
- assert_equal "cd app_root && example_runner file --name='/example_name/'", Runner.new.single_example(test_case)
23
- end
24
-
25
- def test_multiple_examples_same_file
26
- test_cases = [
27
- MockTestCase.new(
28
- example: "example_name",
29
- app_root: "app_root",
30
- example_runner: "example_runner",
31
- file: "file",
32
- spring_enabled?: false
33
- ),
34
- MockTestCase.new(
35
- example: "example_name",
36
- app_root: "app_root",
37
- example_runner: "example_runner",
38
- file: "file"
39
- )
40
- ]
41
- assert_equal "cd app_root && example_runner file --name='/example_name/'", Runner.new.multiple_examples_same_file(test_cases)
42
- end
43
-
44
- def test_single_file
45
- test_case = MockTestCase.new(
46
- example: "example_name",
47
- app_root: "app_root",
48
- file_runner: "file_runner",
49
- file: "file",
50
- spring_enabled?: false
51
- )
52
- assert_equal "cd app_root && file_runner file", Runner.new.single_file(test_case)
53
- end
54
-
55
- def test_one_or_more_files
56
- test_cases = [
57
- MockTestCase.new(
58
- example: "example_name",
59
- app_root: "app_root",
60
- file_runner: "file_runner",
61
- file: "file_1",
62
- spring_enabled?: false
63
- ),
64
- MockTestCase.new(
65
- example: "example_name",
66
- app_root: "app_root",
67
- file_runner: "file_runner",
68
- file: "file_2"
69
- )
70
- ]
71
- assert_equal "cd app_root && file_runner file_1 file_2", Runner.new.one_or_more_files(test_cases)
72
- end
73
- end
74
- end
75
- end
76
- end
@@ -1,109 +0,0 @@
1
- require "test_helper"
2
- require "test_helpers/mocks"
3
- require "test_launcher/search/git"
4
- require "test_launcher/frameworks/minitest"
5
-
6
- module TestLauncher
7
- module Frameworks
8
- module Minitest
9
- class SearcherTest < ::TestCase
10
- include DefaultMocks
11
-
12
- class RawSearcherMock < Mock
13
- mocks Search::Git
14
-
15
- impl :grep do |regex, file_pattern:|
16
- example_name_regex = "^ *def +test_.*().*" #TODO: no bueno copying this
17
- case [regex, file_pattern]
18
- when [example_name_regex, "test/test_launcher/single_test.rb"]
19
- [
20
- {file: "test/test_launcher/single_test.rb", line_number: 8, line: "def test__first"},
21
- {file: "test/test_launcher/single_test.rb", line_number: 13, line: "def test__second"},
22
- {file: "test/test_launcher/single_test.rb", line_number: 18, line: "def test__third"},
23
- ]
24
- when [example_name_regex, "root_path/non_test_file"]
25
- []
26
- when [example_name_regex, "root_path/multiple_1"]
27
- [
28
- "test/dir/1_multiple_test.rb:8: def test__first",
29
- "test/dir/1_multiple_test.rb:13: def test__second",
30
- ]
31
- when [example_name_regex, "root_path/multiple_2"]
32
- [
33
- "test/dir/2_multiple_test.rb:12: def test__first",
34
- "test/dir/2_multiple_test.rb:30: def test__second",
35
- ]
36
- else
37
- raise "unmocked search: #{regex}, #{file_pattern}"
38
- end
39
- end
40
-
41
- impl :find_files do |pattern|
42
- case pattern
43
- when "not_found_test.rb"
44
- []
45
- when "single_test.rb"
46
- ["test/test_launcher/single_test.rb"]
47
- when "non_test_file.rb"
48
- ["non_test_file.rb"]
49
- when "multiple_test.rb"
50
- ["test/dir/1_multiple_test.rb", "test/dir/2_multiple_test.rb"]
51
- else
52
- raise "unmocked search: #{pattern}"
53
- end
54
- end
55
- end
56
-
57
- def searcher
58
- @searcher ||= Searcher.new(RawSearcherMock.new)
59
- end
60
-
61
- def test_by_line__file_not_found
62
- assert_equal [], searcher.by_line("not_found_test.rb", 1)
63
- end
64
-
65
- def test_by_line__file_is_not_test_file
66
- assert_equal [], searcher.by_line("non_test_file.rb", 1)
67
- end
68
-
69
- def test_by_line__single_file_line_before_all_examples
70
- expected_result = [{file: "test/test_launcher/single_test.rb"}]
71
- assert_equal expected_result, searcher.by_line("single_test.rb", 1)
72
- end
73
-
74
- def test_by_line__single_file_line_exact_number
75
- expected_result = [{
76
- file: "test/test_launcher/single_test.rb",
77
- example_name: "test__first",
78
- line_number: 8
79
- }]
80
- assert_equal expected_result, searcher.by_line("single_test.rb", 8)
81
- end
82
-
83
- def test_by_line__single_file_line_after_example
84
- expected_result = [{
85
- file: "test/test_launcher/single_test.rb",
86
- example_name: "test__first",
87
- line_number: 8
88
- }]
89
- assert_equal expected_result, searcher.by_line("single_test.rb", 10)
90
- end
91
-
92
- def test_by_line__single_file_line_after_example_2
93
- expected_result = [{
94
- file: "test/test_launcher/single_test.rb",
95
- example_name: "test__second",
96
- line_number: 13
97
- }]
98
- assert_equal expected_result, searcher.by_line("single_test.rb", 17)
99
- end
100
-
101
- def test_by_line__multiple_files__raises_error_for_now
102
- assert_raises Searcher::MultipleByLineMatches do
103
- searcher.by_line("multiple_test.rb", 1)
104
- end
105
- end
106
- end
107
- end
108
- end
109
- end
@@ -1,83 +0,0 @@
1
- require "test_helper"
2
- require "test_helpers/mocks"
3
- require "test_launcher/frameworks/rspec"
4
-
5
- module TestLauncher
6
- module Frameworks
7
- module RSpec
8
- class RunnerTest < ::TestCase
9
-
10
- class MockTestCase < Mock
11
- mocks RSpec::TestCase
12
- end
13
-
14
- def test_single_example
15
- test_case = MockTestCase.new(
16
- example: "example_name",
17
- app_root: "app_root",
18
- file: "file",
19
- runner: "bundle exec rspec"
20
- )
21
- assert_equal "cd app_root && bundle exec rspec file --example example_name", Runner.new.single_example(test_case)
22
- end
23
-
24
- def test_single_example__with_messy_name
25
- test_case = MockTestCase.new(
26
- example: "this is it's name :(",
27
- app_root: "app_root",
28
- file: "file",
29
- runner: "bundle exec rspec"
30
- )
31
- assert_equal "cd app_root && bundle exec rspec file --example this\\ is\\ it\\'s\\ name\\ :\\(", Runner.new.single_example(test_case)
32
- end
33
-
34
-
35
- def test_multiple_examples_same_file
36
- test_cases = [
37
- MockTestCase.new(
38
- example: "example_name",
39
- app_root: "app_root",
40
- file: "file",
41
- runner: "bundle exec rspec"
42
- ),
43
- MockTestCase.new(
44
- example: "example_name",
45
- app_root: "app_root",
46
- file: "file",
47
- runner: "bundle exec rspec"
48
- )
49
- ]
50
- assert_equal "cd app_root && bundle exec rspec file --example example_name", Runner.new.multiple_examples_same_file(test_cases)
51
- end
52
-
53
- def test_single_file
54
- test_case = MockTestCase.new(
55
- example: "example_name",
56
- app_root: "app_root",
57
- file: "file",
58
- runner: "bundle exec rspec"
59
- )
60
- assert_equal "cd app_root && bundle exec rspec file", Runner.new.single_file(test_case)
61
- end
62
-
63
- def test_one_or_more_files
64
- test_cases = [
65
- MockTestCase.new(
66
- example: "example_name",
67
- app_root: "app_root",
68
- file: "file_1",
69
- runner: "bin/rspec"
70
- ),
71
- MockTestCase.new(
72
- example: "example_name",
73
- app_root: "app_root",
74
- file: "file_2",
75
- runner: "bin/rspec"
76
- )
77
- ]
78
- assert_equal "cd app_root && bin/rspec file_1 file_2", Runner.new.one_or_more_files(test_cases)
79
- end
80
- end
81
- end
82
- end
83
- end
@@ -1,54 +0,0 @@
1
- require "test_helper"
2
- require "test_helpers/mocks"
3
- require "test_launcher/search/git"
4
- require "test_launcher/frameworks/rspec"
5
-
6
- module TestLauncher
7
- module Frameworks
8
- module RSpec
9
- class SearcherTest < ::TestCase
10
- include DefaultMocks
11
-
12
- class RawSearcherMock < Mock
13
- mocks Search::Git
14
-
15
- impl :find_files do |pattern|
16
- case pattern
17
- when "not_found_spec.rb"
18
- []
19
- when "single_spec.rb"
20
- ["spec/test_launcher/single_spec.rb"]
21
- when "non_test_file.rb"
22
- ["non_test_file.rb"]
23
- when "multiple_spec.rb"
24
- ["spec/dir/1_multiple_spec.rb", "spec/dir/2_multiple_spec.rb"]
25
- else
26
- raise "unmocked search: #{pattern}"
27
- end
28
- end
29
- end
30
-
31
- def searcher
32
- @searcher ||= Searcher.new(RawSearcherMock.new)
33
- end
34
-
35
- def test_by_line__file_not_found
36
- assert_equal [], searcher.by_line("not_found_spec.rb", 1)
37
- end
38
-
39
- def test_by_line__file_is_not_test_file
40
- assert_equal [], searcher.by_line("non_test_file.rb", 1)
41
- end
42
-
43
- def test_by_line__file_is_found
44
- expected_result = [{
45
- file: "spec/test_launcher/single_spec.rb",
46
- line_number: 8
47
- }]
48
-
49
- assert_equal expected_result, searcher.by_line("single_spec.rb", 8)
50
- end
51
- end
52
- end
53
- end
54
- end
@@ -1,62 +0,0 @@
1
- require "test_helper"
2
- require "test_helpers/integration_helper"
3
-
4
- module TestLauncher
5
- class GenericIntegrationTest < TestCase
6
- include IntegrationHelper
7
-
8
- def launch(query, env: {}, searcher:, shell: shell_mock, &block)
9
- query += " --framework generic "
10
- shell.reset
11
- CLI.launch(query.split(" "), env, shell: shell, searcher: searcher, &block)
12
- end
13
-
14
- def test__by_filename
15
- searcher = MemorySearcher.new do |searcher|
16
- searcher.mock_file do |f|
17
- f.path "/src/test/file_1.rb"
18
- f.contents ""
19
- end
20
- end
21
-
22
- launch("file_1", searcher: searcher)
23
- assert_equal "ruby /src/test/file_1.rb", shell_mock.recall_exec
24
- end
25
-
26
- def test__not_filename
27
- searcher = MemorySearcher.new do |searcher|
28
- searcher.mock_file do |f|
29
- f.path "/src/test/file_1.rb"
30
- f.contents "runme"
31
- end
32
- end
33
-
34
- launch("runme", searcher: searcher)
35
- assert_equal nil, shell_mock.recall_exec
36
-
37
- launch("file:1", searcher: searcher)
38
- assert_equal nil, shell_mock.recall_exec
39
-
40
- launch("/src/test/file_1.rb:1", searcher: searcher)
41
- assert_equal nil, shell_mock.recall_exec
42
- end
43
-
44
- def test__cli_yields_block
45
- # TODO: don't test this here
46
- searcher = MemorySearcher.new do |searcher|
47
- searcher.mock_file do |f|
48
- f.path "/src/test/file_1.rb"
49
- f.contents "runme"
50
- end
51
- end
52
- @yielded = false
53
- launch("/src/test/file_1.rb", searcher: searcher) do |command|
54
- @yielded = true
55
- assert_equal "ruby /src/test/file_1.rb", command
56
- "new_command"
57
- end
58
- assert @yielded
59
- assert_equal "new_command", shell_mock.recall_exec
60
- end
61
- end
62
- end