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.
- checksums.yaml +4 -4
- data/lib/test_launcher/frameworks/minitest.rb +7 -2
- data/lib/test_launcher/search/git.rb +2 -1
- data/lib/test_launcher/version.rb +1 -1
- data/test_launcher.gemspec +1 -1
- metadata +3 -60
- data/.gitignore +0 -16
- data/Gemfile +0 -8
- data/README.md +0 -419
- data/Rakefile +0 -9
- data/test/install +0 -3
- data/test/test_helper.rb +0 -65
- data/test/test_helpers/integration_helper.rb +0 -33
- data/test/test_helpers/mock.rb +0 -59
- data/test/test_helpers/mock_searcher.rb +0 -1
- data/test/test_helpers/mocks.rb +0 -77
- data/test/test_helpers/mocks/searcher_mock.rb +0 -84
- data/test/test_launcher/cli/input_parser_test.rb +0 -79
- data/test/test_launcher/ex_unit_integration_test.rb +0 -413
- data/test/test_launcher/frameworks/implementation/test_case_test.rb +0 -73
- data/test/test_launcher/frameworks/minitest/runner_test.rb +0 -76
- data/test/test_launcher/frameworks/minitest/searcher_test.rb +0 -109
- data/test/test_launcher/frameworks/rspec/runner_test.rb +0 -83
- data/test/test_launcher/frameworks/rspec/searcher_test.rb +0 -54
- data/test/test_launcher/generic_integration_test.rb +0 -62
- data/test/test_launcher/minitest_integration_test.rb +0 -683
- data/test/test_launcher/queries/example_name_query_test.rb +0 -221
- data/test/test_launcher/queries/full_regex_query_test.rb +0 -153
- data/test/test_launcher/queries/generic_query_test.rb +0 -23
- data/test/test_launcher/queries/line_number_query_test.rb +0 -107
- data/test/test_launcher/queries/multi_path_query_test.rb +0 -126
- data/test/test_launcher/queries/path_query_test.rb +0 -192
- data/test/test_launcher/rspec_integration_test.rb +0 -574
- data/test/test_launcher/rubymine_test.rb +0 -65
- data/test/test_launcher/search/ag_test.rb +0 -42
- data/test/test_launcher/search/git_test.rb +0 -41
@@ -1,126 +0,0 @@
|
|
1
|
-
require "test_helper"
|
2
|
-
require "test_helpers/mocks"
|
3
|
-
require "test_launcher/queries"
|
4
|
-
|
5
|
-
module TestLauncher
|
6
|
-
module Queries
|
7
|
-
class MultiPathQueryTest < TestCase
|
8
|
-
include DefaultMocks
|
9
|
-
|
10
|
-
def searcher
|
11
|
-
@searcher ||= MockSearcher.new do |m|
|
12
|
-
m.impl :test_files do |search_string|
|
13
|
-
case search_string
|
14
|
-
when "not_found"
|
15
|
-
[]
|
16
|
-
when "file_1"
|
17
|
-
["file_1"]
|
18
|
-
when "file_2"
|
19
|
-
["file_2"]
|
20
|
-
when "files"
|
21
|
-
["file_3", "file_4"]
|
22
|
-
else
|
23
|
-
raise "can't find #{search_string}"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def create_mock_request(**attrs)
|
30
|
-
MockRequest.new(**attrs) do |m|
|
31
|
-
m.impl(:test_case) do |file:, example: nil, request:|
|
32
|
-
case file
|
33
|
-
when "file_1"
|
34
|
-
file_1_test_case
|
35
|
-
when "file_2"
|
36
|
-
file_2_test_case
|
37
|
-
when "file_3"
|
38
|
-
file_3_test_case
|
39
|
-
when "file_4"
|
40
|
-
file_4_test_case
|
41
|
-
else
|
42
|
-
raise "unmocked file: #{file}"
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def file_1_test_case
|
49
|
-
@file_1_test_case ||= MockTestCase.new(file: "file_1", mtime: Time.now - 1)
|
50
|
-
end
|
51
|
-
|
52
|
-
def file_2_test_case
|
53
|
-
@file_2_test_case ||= MockTestCase.new(file: "file_2", mtime: Time.now - 2)
|
54
|
-
end
|
55
|
-
|
56
|
-
def file_3_test_case
|
57
|
-
@file_3_test_case ||= MockTestCase.new(file: "file_3", mtime: Time.now - 3)
|
58
|
-
end
|
59
|
-
|
60
|
-
def file_4_test_case
|
61
|
-
@file_4_test_case ||= MockTestCase.new(file: "file_4", mtime: Time.now - 4)
|
62
|
-
end
|
63
|
-
|
64
|
-
|
65
|
-
def test_command__finds_files_for_0_of_2_terms_asdf
|
66
|
-
request = create_mock_request(
|
67
|
-
search_string: "not_found not_found",
|
68
|
-
shell: default_shell,
|
69
|
-
runner: default_runner,
|
70
|
-
searcher: searcher
|
71
|
-
)
|
72
|
-
command = MultiPathQuery.new(request, default_command_finder).command
|
73
|
-
|
74
|
-
assert_equal nil, command
|
75
|
-
end
|
76
|
-
|
77
|
-
def test_command__finds_files_for_1_of_2_terms
|
78
|
-
request = create_mock_request(
|
79
|
-
search_string: "file_1 not_found",
|
80
|
-
shell: default_shell,
|
81
|
-
runner: default_runner,
|
82
|
-
searcher: searcher
|
83
|
-
)
|
84
|
-
command = MultiPathQuery.new(request, default_command_finder).command
|
85
|
-
|
86
|
-
assert_equal nil, command
|
87
|
-
end
|
88
|
-
|
89
|
-
def test_command__finds_files_for_1_of_2_terms__warns
|
90
|
-
request = create_mock_request(
|
91
|
-
search_string: "file_1 not_found",
|
92
|
-
shell: default_shell,
|
93
|
-
searcher: searcher
|
94
|
-
)
|
95
|
-
command = MultiPathQuery.new(request, default_command_finder).command
|
96
|
-
|
97
|
-
assert_equal 1, default_shell.recall(:warn).size
|
98
|
-
end
|
99
|
-
|
100
|
-
def test_command__finds_files_for_2_of_2_terms
|
101
|
-
request = create_mock_request(
|
102
|
-
search_string: "file_1 file_2",
|
103
|
-
shell: default_shell,
|
104
|
-
runner: default_runner,
|
105
|
-
searcher: searcher,
|
106
|
-
)
|
107
|
-
command = MultiPathQuery.new(request, default_command_finder).command
|
108
|
-
|
109
|
-
assert_equal [[[file_1_test_case, file_2_test_case]]], default_runner.recall(:multiple_files)
|
110
|
-
assert_equal "multiple_files_return", command
|
111
|
-
end
|
112
|
-
|
113
|
-
def test_command__finds_files_for_2_of_2_terms__extra_files_found
|
114
|
-
request = create_mock_request(
|
115
|
-
search_string: "file_1 files",
|
116
|
-
shell: default_shell,
|
117
|
-
runner: default_runner,
|
118
|
-
searcher: searcher,
|
119
|
-
)
|
120
|
-
command = MultiPathQuery.new(request, default_command_finder).command
|
121
|
-
assert_equal [[[file_1_test_case, file_3_test_case, file_4_test_case]]], default_runner.recall(:multiple_files)
|
122
|
-
assert_equal "multiple_files_return", command
|
123
|
-
end
|
124
|
-
end
|
125
|
-
end
|
126
|
-
end
|
@@ -1,192 +0,0 @@
|
|
1
|
-
require "test_helper"
|
2
|
-
require "test_helpers/mocks"
|
3
|
-
require "test_launcher/queries"
|
4
|
-
|
5
|
-
module TestLauncher
|
6
|
-
module Queries
|
7
|
-
class PathQueryTest < TestCase
|
8
|
-
include DefaultMocks
|
9
|
-
|
10
|
-
def searcher
|
11
|
-
@searcher ||= MockSearcher.new do |m|
|
12
|
-
m.impl :test_files do |search_string|
|
13
|
-
case search_string
|
14
|
-
when "not_found"
|
15
|
-
[]
|
16
|
-
when "one_file"
|
17
|
-
["file_1"]
|
18
|
-
when "multiple_files"
|
19
|
-
["file_2", "file_3", "file_4"]
|
20
|
-
else
|
21
|
-
raise "unmocked search_string: #{search_string}"
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def create_mock_request(**attrs)
|
28
|
-
MockRequest.new(**attrs) do |m|
|
29
|
-
m.impl(:test_case) do |file:, request:|
|
30
|
-
case file
|
31
|
-
when "file_1"
|
32
|
-
normal_test_case
|
33
|
-
when "file_2"
|
34
|
-
old_test_case
|
35
|
-
when "file_3"
|
36
|
-
older_test_case
|
37
|
-
when "file_4"
|
38
|
-
new_test_case
|
39
|
-
else
|
40
|
-
raise "unmocked file: #{file}"
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def normal_test_case
|
47
|
-
@normal_test_case ||= MockTestCase.new(file: "file_1")
|
48
|
-
end
|
49
|
-
|
50
|
-
def old_test_case
|
51
|
-
@old_test_case ||= MockTestCase.new(file: "file_2", mtime: Time.now - 1000)
|
52
|
-
end
|
53
|
-
|
54
|
-
def older_test_case
|
55
|
-
@older_test_case ||= MockTestCase.new(file: "file_3", mtime: Time.now - 10000)
|
56
|
-
end
|
57
|
-
|
58
|
-
def new_test_case
|
59
|
-
@new_test_case ||= MockTestCase.new(file: "file_4", mtime: Time.now)
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_command__file_not_found__returns_nil
|
63
|
-
request = create_mock_request(
|
64
|
-
search_string: "not_found",
|
65
|
-
searcher: searcher
|
66
|
-
)
|
67
|
-
|
68
|
-
command = PathQuery.new(request, default_command_finder).command
|
69
|
-
|
70
|
-
assert_equal nil, command
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_command__file_not_found__does_not_warn
|
74
|
-
request = create_mock_request(
|
75
|
-
search_string: "not_found",
|
76
|
-
searcher: searcher
|
77
|
-
)
|
78
|
-
|
79
|
-
command = PathQuery.new(request, default_command_finder).command
|
80
|
-
|
81
|
-
assert default_shell.recall(:warn).empty?
|
82
|
-
end
|
83
|
-
|
84
|
-
def test_command__one_file_found__runs_single_file
|
85
|
-
request = create_mock_request(
|
86
|
-
search_string: "one_file",
|
87
|
-
shell: default_shell,
|
88
|
-
searcher: searcher,
|
89
|
-
runner: default_runner
|
90
|
-
)
|
91
|
-
|
92
|
-
command = PathQuery.new(request, default_command_finder).command
|
93
|
-
|
94
|
-
assert_equal [[normal_test_case]], default_runner.recall(:single_file)
|
95
|
-
assert_equal "single_file_return", command
|
96
|
-
end
|
97
|
-
|
98
|
-
def test_command__one_file_found__has_correct_test_case
|
99
|
-
request = create_mock_request(
|
100
|
-
search_string: "one_file",
|
101
|
-
shell: default_shell,
|
102
|
-
searcher: searcher,
|
103
|
-
runner: default_runner
|
104
|
-
)
|
105
|
-
|
106
|
-
expected_test_case_args = [file: "file_1", request: request]
|
107
|
-
|
108
|
-
command = PathQuery.new(request, default_command_finder).command
|
109
|
-
|
110
|
-
assert_equal [expected_test_case_args], request.recall(:test_case)
|
111
|
-
end
|
112
|
-
|
113
|
-
def test_command__one_file_found__notifies
|
114
|
-
request = create_mock_request(
|
115
|
-
search_string: "one_file",
|
116
|
-
shell: default_shell,
|
117
|
-
searcher: searcher,
|
118
|
-
runner: default_runner
|
119
|
-
)
|
120
|
-
|
121
|
-
command = PathQuery.new(request, default_command_finder).command
|
122
|
-
|
123
|
-
assert_equal [["Found 1 file."]], default_shell.recall(:notify)
|
124
|
-
end
|
125
|
-
|
126
|
-
def test_command__multiple_files_found__no_all__runs_single_file
|
127
|
-
request = create_mock_request(
|
128
|
-
search_string: "multiple_files",
|
129
|
-
shell: default_shell,
|
130
|
-
searcher: searcher,
|
131
|
-
runner: default_runner,
|
132
|
-
run_all?: false
|
133
|
-
)
|
134
|
-
|
135
|
-
command = PathQuery.new(request, default_command_finder).command
|
136
|
-
|
137
|
-
assert_equal [[new_test_case]], default_runner.recall(:single_file)
|
138
|
-
assert_equal "single_file_return", command
|
139
|
-
end
|
140
|
-
|
141
|
-
def test_command__multiple_files_found__no_all__notifies
|
142
|
-
request = create_mock_request(
|
143
|
-
search_string: "multiple_files",
|
144
|
-
shell: default_shell,
|
145
|
-
searcher: searcher,
|
146
|
-
runner: default_runner,
|
147
|
-
run_all?: false
|
148
|
-
)
|
149
|
-
|
150
|
-
command = PathQuery.new(request, default_command_finder).command
|
151
|
-
|
152
|
-
messages = [
|
153
|
-
["Found 3 files."],
|
154
|
-
["Running most recently edited. Run with '--all' to run all the tests."]
|
155
|
-
]
|
156
|
-
assert_equal messages, default_shell.recall(:notify)
|
157
|
-
end
|
158
|
-
|
159
|
-
def test_command__multiple_files_found__all__runs_single_file
|
160
|
-
request = create_mock_request(
|
161
|
-
search_string: "multiple_files",
|
162
|
-
shell: default_shell,
|
163
|
-
searcher: searcher,
|
164
|
-
runner: default_runner,
|
165
|
-
run_all?: true
|
166
|
-
)
|
167
|
-
|
168
|
-
command = PathQuery.new(request, default_command_finder).command
|
169
|
-
|
170
|
-
assert_equal [[[old_test_case, older_test_case, new_test_case]]], default_runner.recall(:multiple_files)
|
171
|
-
assert_equal "multiple_files_return", command
|
172
|
-
end
|
173
|
-
|
174
|
-
def test_command__multiple_files_found__all__notifies
|
175
|
-
request = create_mock_request(
|
176
|
-
search_string: "multiple_files",
|
177
|
-
shell: default_shell,
|
178
|
-
searcher: searcher,
|
179
|
-
runner: default_runner,
|
180
|
-
run_all?: true
|
181
|
-
)
|
182
|
-
|
183
|
-
command = PathQuery.new(request, default_command_finder).command
|
184
|
-
|
185
|
-
messages = [
|
186
|
-
["Found 3 files."]
|
187
|
-
]
|
188
|
-
assert_equal messages, default_shell.recall(:notify)
|
189
|
-
end
|
190
|
-
end
|
191
|
-
end
|
192
|
-
end
|
@@ -1,574 +0,0 @@
|
|
1
|
-
require "test_helper"
|
2
|
-
require "test_helpers/integration_helper"
|
3
|
-
|
4
|
-
module TestLauncher
|
5
|
-
class RspecIntegrationTest < TestCase
|
6
|
-
include IntegrationHelper
|
7
|
-
|
8
|
-
def launch(query, env: {}, searcher:, shell: shell_mock)
|
9
|
-
query += " --framework rspec"
|
10
|
-
shell.reset
|
11
|
-
CLI.launch(query.split(" "), env, shell: shell, searcher: searcher)
|
12
|
-
end
|
13
|
-
|
14
|
-
def test__by_example__single_example
|
15
|
-
searcher = MemorySearcher.new do |searcher|
|
16
|
-
searcher.mock_file do |f|
|
17
|
-
f.path "/src/spec/class_1_spec.rb"
|
18
|
-
f.contents <<-RB
|
19
|
-
it "does a thing" do
|
20
|
-
RB
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
launch("thing", searcher: searcher)
|
25
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/class_1_spec.rb --example thing", shell_mock.recall_exec
|
26
|
-
|
27
|
-
launch("does a thing", searcher: searcher)
|
28
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/class_1_spec.rb --example does\\ a\\ thing", shell_mock.recall_exec
|
29
|
-
|
30
|
-
launch("n", searcher: searcher)
|
31
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/class_1_spec.rb --example n", shell_mock.recall_exec
|
32
|
-
end
|
33
|
-
|
34
|
-
def test__by_example__multiple_examples__same_file
|
35
|
-
searcher = MemorySearcher.new do |searcher|
|
36
|
-
searcher.mock_file do |f|
|
37
|
-
f.path "/src/spec/class_1_spec.rb"
|
38
|
-
f.contents <<-RB
|
39
|
-
it "name_1" do
|
40
|
-
it "name_2" do
|
41
|
-
end
|
42
|
-
RB
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
launch("name_", searcher: searcher)
|
47
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/class_1_spec.rb --example name_", shell_mock.recall_exec
|
48
|
-
end
|
49
|
-
|
50
|
-
def test__by_example__multiple_methods__different_files
|
51
|
-
searcher = MemorySearcher.new do |searcher|
|
52
|
-
searcher.mock_file do |f|
|
53
|
-
f.path "/src/spec/class_1_spec.rb"
|
54
|
-
f.mtime Time.new(2014, 01, 01, 00, 00, 00)
|
55
|
-
f.contents <<-RB
|
56
|
-
it "test_name_1" do
|
57
|
-
it "test_name_2" do
|
58
|
-
RB
|
59
|
-
end
|
60
|
-
|
61
|
-
searcher.mock_file do |f|
|
62
|
-
f.path "/src/spec/class_2_spec.rb"
|
63
|
-
f.mtime Time.new(2015, 01, 01, 00, 00, 00)
|
64
|
-
f.contents <<-RB
|
65
|
-
it "test_name_1" do
|
66
|
-
it "test_name_2" do
|
67
|
-
RB
|
68
|
-
end
|
69
|
-
|
70
|
-
searcher.mock_file do |f|
|
71
|
-
f.path "/src/spec/class_3_spec.rb"
|
72
|
-
f.mtime Time.new(2013, 01, 01, 00, 00, 00)
|
73
|
-
f.contents <<-RB
|
74
|
-
it "test_name_2" do
|
75
|
-
RB
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
launch("name_1", searcher: searcher)
|
80
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/class_2_spec.rb --example name_1", shell_mock.recall_exec
|
81
|
-
|
82
|
-
launch("name_2", searcher: searcher)
|
83
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/class_2_spec.rb --example name_2", shell_mock.recall_exec
|
84
|
-
|
85
|
-
launch("name_1 --all", searcher: searcher)
|
86
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/class_1_spec.rb /src/spec/class_2_spec.rb --example name_1", shell_mock.recall_exec
|
87
|
-
|
88
|
-
launch("name_2 --all", searcher: searcher)
|
89
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/class_1_spec.rb /src/spec/class_2_spec.rb /src/spec/class_3_spec.rb --example name_2", shell_mock.recall_exec
|
90
|
-
end
|
91
|
-
|
92
|
-
def test__by_filename
|
93
|
-
searcher = MemorySearcher.new do |searcher|
|
94
|
-
searcher.mock_file do |f|
|
95
|
-
f.path "/src/spec/file_1_spec.rb"
|
96
|
-
f.contents ""
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
launch("file_1", searcher: searcher)
|
101
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb", shell_mock.recall_exec
|
102
|
-
|
103
|
-
launch("file_1_spec.rb", searcher: searcher)
|
104
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb", shell_mock.recall_exec
|
105
|
-
|
106
|
-
launch("/file_1", searcher: searcher)
|
107
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb", shell_mock.recall_exec
|
108
|
-
|
109
|
-
launch(".rb", searcher: searcher)
|
110
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb", shell_mock.recall_exec
|
111
|
-
|
112
|
-
launch("/src/spec/file_1", searcher: searcher)
|
113
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb", shell_mock.recall_exec
|
114
|
-
|
115
|
-
launch("src/spec/file_1", searcher: searcher)
|
116
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb", shell_mock.recall_exec
|
117
|
-
|
118
|
-
launch("ec/file_1", searcher: searcher)
|
119
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb", shell_mock.recall_exec
|
120
|
-
end
|
121
|
-
|
122
|
-
def test__by_filename__multiple_files_found
|
123
|
-
searcher = MemorySearcher.new do |searcher|
|
124
|
-
searcher.mock_file do |f|
|
125
|
-
f.path "/src/spec/file_1_spec.rb"
|
126
|
-
f.mtime Time.new(2013, 01, 01, 00, 00, 00)
|
127
|
-
end
|
128
|
-
|
129
|
-
searcher.mock_file do |f|
|
130
|
-
f.path "/src/spec/file_2_spec.rb"
|
131
|
-
f.mtime Time.new(2015, 01, 01, 00, 00, 00)
|
132
|
-
end
|
133
|
-
|
134
|
-
searcher.mock_file do |f|
|
135
|
-
f.path "/src/spec/file_3_spec.rb"
|
136
|
-
f.mtime Time.new(2014, 01, 01, 00, 00, 00)
|
137
|
-
end
|
138
|
-
|
139
|
-
searcher.mock_file do |f|
|
140
|
-
f.path "/src/spec/other_spec.rb"
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
launch("file_1", searcher: searcher)
|
145
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb", shell_mock.recall_exec
|
146
|
-
|
147
|
-
launch("file", searcher: searcher)
|
148
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_2_spec.rb", shell_mock.recall_exec
|
149
|
-
|
150
|
-
launch("file --all", searcher: searcher)
|
151
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb /src/spec/file_2_spec.rb /src/spec/file_3_spec.rb", shell_mock.recall_exec
|
152
|
-
end
|
153
|
-
|
154
|
-
def test__by_filename__preferred_over_regex_and_test_name_matches
|
155
|
-
searcher = MemorySearcher.new do |searcher|
|
156
|
-
searcher.mock_file do |f|
|
157
|
-
f.path "/src/spec/class_1_spec.rb"
|
158
|
-
f.contents <<-RB
|
159
|
-
it "name_spec" do
|
160
|
-
RB
|
161
|
-
end
|
162
|
-
|
163
|
-
searcher.mock_file do |f|
|
164
|
-
f.path "/src/spec/name_spec.rb"
|
165
|
-
end
|
166
|
-
|
167
|
-
searcher.mock_file do |f|
|
168
|
-
f.path "/src/spec/other_spec.rb"
|
169
|
-
f.contents <<-RB
|
170
|
-
regex will match name_spec
|
171
|
-
RB
|
172
|
-
end
|
173
|
-
end
|
174
|
-
|
175
|
-
launch("name_spec", searcher: searcher)
|
176
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/name_spec.rb", shell_mock.recall_exec
|
177
|
-
end
|
178
|
-
|
179
|
-
def test__multiple_queries__generic_regex__prefers_to_keep_spaces
|
180
|
-
searcher = MemorySearcher.new do |searcher|
|
181
|
-
searcher.mock_file do |f|
|
182
|
-
f.path "/src/spec/file_1_spec.rb"
|
183
|
-
f.mtime Time.new(2013, 01, 01, 00, 00, 00)
|
184
|
-
f.contents <<-RB
|
185
|
-
this matches
|
186
|
-
RB
|
187
|
-
end
|
188
|
-
|
189
|
-
searcher.mock_file do |f|
|
190
|
-
f.path "/src/spec/file_2_spec.rb"
|
191
|
-
f.mtime Time.new(2015, 01, 01, 00, 00, 00)
|
192
|
-
f.contents <<-RB
|
193
|
-
this
|
194
|
-
matches
|
195
|
-
RB
|
196
|
-
end
|
197
|
-
|
198
|
-
launch("this matches", searcher: searcher)
|
199
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb", shell_mock.recall_exec
|
200
|
-
|
201
|
-
launch("this matches --all", searcher: searcher)
|
202
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb", shell_mock.recall_exec
|
203
|
-
|
204
|
-
launch("matches this --all", searcher: searcher)
|
205
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb /src/spec/file_2_spec.rb", shell_mock.recall_exec
|
206
|
-
end
|
207
|
-
end
|
208
|
-
|
209
|
-
def test__multiple_queries__splits_spaces_for_test_names
|
210
|
-
searcher = MemorySearcher.new do |searcher|
|
211
|
-
searcher.mock_file do |f|
|
212
|
-
f.path "/src/spec/file_1_spec.rb"
|
213
|
-
f.mtime Time.new(2013, 01, 01, 00, 00, 00)
|
214
|
-
f.contents <<-RB
|
215
|
-
it "this" do
|
216
|
-
RB
|
217
|
-
end
|
218
|
-
|
219
|
-
searcher.mock_file do |f|
|
220
|
-
f.path "/src/spec/file_2_spec.rb"
|
221
|
-
f.mtime Time.new(2015, 01, 01, 00, 00, 00)
|
222
|
-
f.contents <<-RB
|
223
|
-
it "matches" do
|
224
|
-
RB
|
225
|
-
end
|
226
|
-
|
227
|
-
launch("this matches", searcher: searcher)
|
228
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb /src/spec/file_2_spec.rb --example this\\|matches", shell_mock.recall_exec
|
229
|
-
|
230
|
-
skip "not supported in rspec yet"
|
231
|
-
launch("this matches --all", searcher: searcher)
|
232
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb /src/spec/file_2_spec.rb --example this\\|matches", shell_mock.recall_exec
|
233
|
-
|
234
|
-
launch("matches this --all", searcher: searcher)
|
235
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb /src/spec/file_2_spec.rb --example this\\|matches", shell_mock.recall_exec
|
236
|
-
end
|
237
|
-
end
|
238
|
-
|
239
|
-
def test__by_multiple_filenames__multiple_files_found
|
240
|
-
searcher = MemorySearcher.new do |searcher|
|
241
|
-
searcher.mock_file do |f|
|
242
|
-
f.path "/src/spec/file_1_spec.rb"
|
243
|
-
f.mtime Time.new(2013, 01, 01, 00, 00, 00)
|
244
|
-
f.contents ""
|
245
|
-
end
|
246
|
-
|
247
|
-
searcher.mock_file do |f|
|
248
|
-
f.path "/src/spec/file_2_spec.rb"
|
249
|
-
f.mtime Time.new(2015, 01, 01, 00, 00, 00)
|
250
|
-
f.contents ""
|
251
|
-
end
|
252
|
-
|
253
|
-
searcher.mock_file do |f|
|
254
|
-
f.path "/src/spec/file_3_spec.rb"
|
255
|
-
f.mtime Time.new(2014, 01, 01, 00, 00, 00)
|
256
|
-
f.contents ""
|
257
|
-
end
|
258
|
-
|
259
|
-
searcher.mock_file do |f|
|
260
|
-
f.path "/src/spec/other_tspecrb"
|
261
|
-
f.contents ""
|
262
|
-
end
|
263
|
-
end
|
264
|
-
|
265
|
-
launch("file_1 file_2", searcher: searcher)
|
266
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb /src/spec/file_2_spec.rb", shell_mock.recall_exec
|
267
|
-
|
268
|
-
launch("file_1 file", searcher: searcher)
|
269
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb /src/spec/file_2_spec.rb /src/spec/file_3_spec.rb", shell_mock.recall_exec
|
270
|
-
|
271
|
-
# If multiple queries are submitted but not all of them match,
|
272
|
-
# then what should we do? For now, we assume that it's only
|
273
|
-
# considered a match if each query term matches at least one
|
274
|
-
# or more files.
|
275
|
-
launch("file_1 gibberish", searcher: searcher)
|
276
|
-
assert_equal nil, shell_mock.recall_exec
|
277
|
-
end
|
278
|
-
|
279
|
-
def test__by_regex__one_match
|
280
|
-
searcher = MemorySearcher.new do |searcher|
|
281
|
-
searcher.mock_file do |f|
|
282
|
-
f.path "/src/spec/file_1_spec.rb"
|
283
|
-
f.mtime Time.new(2013, 01, 01, 00, 00, 00)
|
284
|
-
f.contents <<-RB
|
285
|
-
regex match 1
|
286
|
-
regex match 2
|
287
|
-
regex match 3
|
288
|
-
RB
|
289
|
-
end
|
290
|
-
|
291
|
-
searcher.mock_file do |f|
|
292
|
-
f.path "/src/spec/file_2_spec.rb"
|
293
|
-
f.mtime Time.new(2015, 01, 01, 00, 00, 00)
|
294
|
-
f.contents <<-RB
|
295
|
-
regex match 1
|
296
|
-
regex match 2
|
297
|
-
RB
|
298
|
-
end
|
299
|
-
|
300
|
-
searcher.mock_file do |f|
|
301
|
-
f.path "/src/spec/file_3_spec.rb"
|
302
|
-
f.mtime Time.new(2014, 01, 01, 00, 00, 00)
|
303
|
-
f.contents <<-RB
|
304
|
-
regex match 1
|
305
|
-
regex match 3
|
306
|
-
RB
|
307
|
-
end
|
308
|
-
end
|
309
|
-
|
310
|
-
launch("regex match 1", searcher: searcher)
|
311
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_2_spec.rb", shell_mock.recall_exec
|
312
|
-
|
313
|
-
launch("regex match 3", searcher: searcher)
|
314
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_3_spec.rb", shell_mock.recall_exec
|
315
|
-
|
316
|
-
launch("regex match", searcher: searcher)
|
317
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_2_spec.rb", shell_mock.recall_exec
|
318
|
-
|
319
|
-
launch("regex match --all", searcher: searcher)
|
320
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb /src/spec/file_2_spec.rb /src/spec/file_3_spec.rb", shell_mock.recall_exec
|
321
|
-
end
|
322
|
-
|
323
|
-
def test__by_example__preferred_over_regex
|
324
|
-
searcher = MemorySearcher.new do |searcher|
|
325
|
-
searcher.mock_file do |f|
|
326
|
-
f.path "/src/spec/file_1_spec.rb"
|
327
|
-
f.mtime Time.new(2013, 01, 01, 00, 00, 00)
|
328
|
-
f.contents <<-RB
|
329
|
-
it "regex_match" do
|
330
|
-
RB
|
331
|
-
end
|
332
|
-
|
333
|
-
searcher.mock_file do |f|
|
334
|
-
f.path "/src/spec/file_2_spec.rb"
|
335
|
-
f.mtime Time.new(2015, 01, 01, 00, 00, 00)
|
336
|
-
f.contents <<-RB
|
337
|
-
regex_match
|
338
|
-
RB
|
339
|
-
end
|
340
|
-
end
|
341
|
-
|
342
|
-
launch("regex_match", searcher: searcher)
|
343
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb --example regex_match", shell_mock.recall_exec
|
344
|
-
end
|
345
|
-
|
346
|
-
def test__context_blocks_are_treated_as_examples
|
347
|
-
searcher = MemorySearcher.new do |searcher|
|
348
|
-
searcher.mock_file do |f|
|
349
|
-
f.path "/src/spec/file_1_spec.rb"
|
350
|
-
f.mtime Time.new(2013, 01, 01, 00, 00, 00)
|
351
|
-
f.contents <<-RB
|
352
|
-
describe "test_1" do
|
353
|
-
context "test_2" do
|
354
|
-
RSpec.describe "test_3" do
|
355
|
-
RB
|
356
|
-
end
|
357
|
-
end
|
358
|
-
|
359
|
-
launch("test_1", searcher: searcher)
|
360
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb --example test_1", shell_mock.recall_exec
|
361
|
-
|
362
|
-
launch("test_2", searcher: searcher)
|
363
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb --example test_2", shell_mock.recall_exec
|
364
|
-
|
365
|
-
launch("test_3", searcher: searcher)
|
366
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb --example test_3", shell_mock.recall_exec
|
367
|
-
end
|
368
|
-
|
369
|
-
def test__by_example__handles_regex_for_example_name
|
370
|
-
searcher = MemorySearcher.new do |searcher|
|
371
|
-
searcher.mock_file do |f|
|
372
|
-
f.path "/src/spec/file_1_spec.rb"
|
373
|
-
f.mtime Time.new(2013, 01, 01, 00, 00, 00)
|
374
|
-
f.contents <<-RB
|
375
|
-
it "test_name_1" do
|
376
|
-
RB
|
377
|
-
end
|
378
|
-
|
379
|
-
searcher.mock_file do |f|
|
380
|
-
f.path "/src/spec/file_2_spec.rb"
|
381
|
-
f.mtime Time.new(2015, 01, 01, 00, 00, 00)
|
382
|
-
f.contents <<-RB
|
383
|
-
it "test_name_2" do
|
384
|
-
RB
|
385
|
-
end
|
386
|
-
end
|
387
|
-
|
388
|
-
launch("test_name_1x?", searcher: searcher)
|
389
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb --example test_name_1x\\?", shell_mock.recall_exec
|
390
|
-
|
391
|
-
launch("test_name_2|test_name_1", searcher: searcher)
|
392
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_2_spec.rb --example test_name_2\\|test_name_1", shell_mock.recall_exec
|
393
|
-
|
394
|
-
launch('test_name_\d', searcher: searcher)
|
395
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_2_spec.rb --example test_name_\\\\d", shell_mock.recall_exec
|
396
|
-
|
397
|
-
launch('test_name_\d --all', searcher: searcher)
|
398
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb /src/spec/file_2_spec.rb --example test_name_\\\\d", shell_mock.recall_exec
|
399
|
-
end
|
400
|
-
|
401
|
-
def test__not_found
|
402
|
-
searcher = MemorySearcher.new do |searcher|
|
403
|
-
searcher.mock_file do |f|
|
404
|
-
f.path "/src/spec/file_1_spec.rb"
|
405
|
-
f.mtime Time.new(2013, 01, 01, 00, 00, 00)
|
406
|
-
f.contents <<-RB
|
407
|
-
some stuff
|
408
|
-
RB
|
409
|
-
end
|
410
|
-
end
|
411
|
-
|
412
|
-
launch("gibberish", searcher: searcher)
|
413
|
-
assert_equal nil, shell_mock.recall_exec
|
414
|
-
end
|
415
|
-
|
416
|
-
def test__different_roots
|
417
|
-
searcher = MemorySearcher.new do |searcher|
|
418
|
-
searcher.mock_file do |f|
|
419
|
-
f.path "/src/spec/file_1_spec.rb"
|
420
|
-
f.mtime Time.new(2013, 01, 01, 00, 00, 00)
|
421
|
-
f.contents <<-RB
|
422
|
-
it 'test_name_1' do
|
423
|
-
RB
|
424
|
-
end
|
425
|
-
|
426
|
-
searcher.mock_file do |f|
|
427
|
-
f.path "/src/spec/file_2_spec.rb"
|
428
|
-
f.mtime Time.new(2015, 01, 01, 00, 00, 00)
|
429
|
-
f.contents <<-RB
|
430
|
-
it 'test_name_2' do
|
431
|
-
RB
|
432
|
-
end
|
433
|
-
|
434
|
-
searcher.mock_file do |f|
|
435
|
-
f.path "/src/inline/gem/spec/file_1_spec.rb"
|
436
|
-
f.mtime Time.new(2014, 01, 01, 00, 00, 00)
|
437
|
-
f.contents <<-RB
|
438
|
-
it 'test_name_1' do
|
439
|
-
RB
|
440
|
-
end
|
441
|
-
end
|
442
|
-
|
443
|
-
launch("test_name_1", searcher: searcher)
|
444
|
-
assert_equal "cd /src/inline/gem && bundle exec rspec /src/inline/gem/spec/file_1_spec.rb --example test_name_1", shell_mock.recall_exec
|
445
|
-
|
446
|
-
launch("test_name_1 --all", searcher: searcher)
|
447
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb --example test_name_1; cd -;\n\ncd /src/inline/gem && bundle exec rspec /src/inline/gem/spec/file_1_spec.rb --example test_name_1", shell_mock.recall_exec
|
448
|
-
|
449
|
-
launch("file --all", searcher: searcher)
|
450
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb /src/spec/file_2_spec.rb; cd -;\n\ncd /src/inline/gem && bundle exec rspec /src/inline/gem/spec/file_1_spec.rb", shell_mock.recall_exec
|
451
|
-
|
452
|
-
launch("file_1", searcher: searcher)
|
453
|
-
assert_equal "cd /src/inline/gem && bundle exec rspec /src/inline/gem/spec/file_1_spec.rb", shell_mock.recall_exec
|
454
|
-
|
455
|
-
launch("file_1 --all", searcher: searcher)
|
456
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb; cd -;\n\ncd /src/inline/gem && bundle exec rspec /src/inline/gem/spec/file_1_spec.rb", shell_mock.recall_exec
|
457
|
-
end
|
458
|
-
|
459
|
-
def test__specified_example_name__simple
|
460
|
-
searcher = MemorySearcher.new do |searcher|
|
461
|
-
searcher.mock_file do |f|
|
462
|
-
f.path "/src/spec/file_1_spec.rb"
|
463
|
-
f.mtime Time.new(2013, 01, 01, 00, 00, 00)
|
464
|
-
f.contents <<-RB
|
465
|
-
it "test_name_1" do
|
466
|
-
RB
|
467
|
-
end
|
468
|
-
|
469
|
-
searcher.mock_file do |f|
|
470
|
-
f.path "/src/inline/gem/spec/file_2_spec.rb"
|
471
|
-
f.mtime Time.new(2015, 01, 01, 00, 00, 00)
|
472
|
-
f.contents <<-RB
|
473
|
-
it "test_name_2" do
|
474
|
-
RB
|
475
|
-
end
|
476
|
-
end
|
477
|
-
|
478
|
-
launch("file_1 --name test_name_1", searcher: searcher)
|
479
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb --example test_name_1", shell_mock.recall_exec
|
480
|
-
|
481
|
-
launch("file_2 --name test_name_2", searcher: searcher)
|
482
|
-
assert_equal "cd /src/inline/gem && bundle exec rspec /src/inline/gem/spec/file_2_spec.rb --example test_name_2", shell_mock.recall_exec
|
483
|
-
|
484
|
-
launch("file_1 --example test_name_1", searcher: searcher)
|
485
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb --example test_name_1", shell_mock.recall_exec
|
486
|
-
end
|
487
|
-
|
488
|
-
def test__specified_example_name__multiple_files_same_name
|
489
|
-
searcher = MemorySearcher.new do |searcher|
|
490
|
-
searcher.mock_file do |f|
|
491
|
-
f.path "/src/spec/file_1_spec.rb"
|
492
|
-
f.mtime Time.new(2013, 01, 01, 00, 00, 00)
|
493
|
-
f.contents <<-RB
|
494
|
-
it "test_name_1" do
|
495
|
-
RB
|
496
|
-
end
|
497
|
-
|
498
|
-
searcher.mock_file do |f|
|
499
|
-
f.path "/src/inline/gem/spec/file_1_spec.rb"
|
500
|
-
f.mtime Time.new(2015, 01, 01, 00, 00, 00)
|
501
|
-
f.contents <<-RB
|
502
|
-
it "test_name_1" do
|
503
|
-
RB
|
504
|
-
end
|
505
|
-
end
|
506
|
-
|
507
|
-
launch("file_1_spec.rb --name test_name_1", searcher: searcher)
|
508
|
-
assert_equal "cd /src/inline/gem && bundle exec rspec /src/inline/gem/spec/file_1_spec.rb --example test_name_1", shell_mock.recall_exec
|
509
|
-
|
510
|
-
launch("file_1 --name test_name_1", searcher: searcher)
|
511
|
-
assert_equal "cd /src/inline/gem && bundle exec rspec /src/inline/gem/spec/file_1_spec.rb --example test_name_1", shell_mock.recall_exec
|
512
|
-
end
|
513
|
-
|
514
|
-
def test__by_line_number__just_passes_through_to_rspec
|
515
|
-
searcher = MemorySearcher.new do |searcher|
|
516
|
-
searcher.mock_file do |f|
|
517
|
-
f.path "/src/spec/file_1_spec.rb"
|
518
|
-
f.mtime Time.new(2013, 01, 01, 00, 00, 00)
|
519
|
-
f.contents ""
|
520
|
-
end
|
521
|
-
end
|
522
|
-
|
523
|
-
launch("file_1_spec.rb:1", searcher: searcher)
|
524
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb:1", shell_mock.recall_exec
|
525
|
-
|
526
|
-
launch("/src/spec/file_1_spec.rb:1", searcher: searcher)
|
527
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb:1", shell_mock.recall_exec
|
528
|
-
|
529
|
-
launch("file_1_spec.rb:273", searcher: searcher)
|
530
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb:273", shell_mock.recall_exec
|
531
|
-
end
|
532
|
-
|
533
|
-
def test__by_line_number__multiple_files
|
534
|
-
searcher = MemorySearcher.new do |searcher|
|
535
|
-
searcher.mock_file do |f|
|
536
|
-
f.path "/src/spec/file_1_spec.rb"
|
537
|
-
f.mtime Time.new(2013, 01, 01, 00, 00, 00)
|
538
|
-
f.contents ""
|
539
|
-
end
|
540
|
-
|
541
|
-
searcher.mock_file do |f|
|
542
|
-
f.path "/src/inline/gem/spec/file_1_spec.rb"
|
543
|
-
f.mtime Time.new(2014, 01, 01, 00, 00, 00)
|
544
|
-
f.contents ""
|
545
|
-
end
|
546
|
-
end
|
547
|
-
|
548
|
-
launch("file_1_spec.rb:1", searcher: searcher)
|
549
|
-
assert_equal "cd /src/inline/gem && bundle exec rspec /src/inline/gem/spec/file_1_spec.rb:1", shell_mock.recall_exec
|
550
|
-
end
|
551
|
-
|
552
|
-
def test__rerun
|
553
|
-
searcher = MemorySearcher.new do |searcher|
|
554
|
-
searcher.mock_file do |f|
|
555
|
-
f.path "/src/spec/file_1_spec.rb"
|
556
|
-
f.mtime Time.new(2014, 01, 01, 00, 00, 00)
|
557
|
-
end
|
558
|
-
|
559
|
-
searcher.mock_file do |f|
|
560
|
-
f.path "/src/spec/file_2_spec.rb"
|
561
|
-
f.mtime Time.new(2015, 01, 01, 00, 00, 00)
|
562
|
-
end
|
563
|
-
end
|
564
|
-
|
565
|
-
history_shell = Shell::HistoryRunner.new(shell: shell_mock, history_path: File.expand_path(File.join(__dir__, '../../tmp/test_history.log')))
|
566
|
-
|
567
|
-
launch("file_1_spec.rb", searcher: searcher, shell: history_shell)
|
568
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb", history_shell.recall_exec
|
569
|
-
|
570
|
-
launch("--rerun", searcher: searcher, shell: history_shell)
|
571
|
-
assert_equal "cd /src && bundle exec rspec /src/spec/file_1_spec.rb", history_shell.recall_exec
|
572
|
-
end
|
573
|
-
end
|
574
|
-
end
|