test_launcher 2.15.0 → 2.18.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 397d2718bb405d496b8aa7c99c6eeba7fee6318f
4
- data.tar.gz: 736cfef80c3f2af92ad0ab0a25f1597f185afee9
3
+ metadata.gz: 44d9c4826741dd27173463fbac8e3b2e06c380d6
4
+ data.tar.gz: 3b2eb4889d798e790c8ebbb76c34ef1af19f1e5e
5
5
  SHA512:
6
- metadata.gz: bba3bceaddd6223c8b25de41357d29d8fe0b4d6bd64357d7f6de167f03dbc4dfef596aa98214acff07330d2c24a344dcf0affce3a2d347d783c16249b973c0c5
7
- data.tar.gz: 26464cab6e33dbab2d6ea93e3c5c967242caee6729b6f59220eb7d09de1ed3a4dd4f1025db2a66e8128dd6acbc331f42a75d827ab8722f864c89d12381309fbe
6
+ metadata.gz: 22bc5978c05f28e01edec088c61ea930242a1a05fe3067c215dab917385699fa017d6c5e3556d29d56164861cf8eca8ae463062332d1a8a65065671df1331640
7
+ data.tar.gz: cbc3e9296109f94a4052ce41810ce031c5b32643f0d0aa2e6206f64b685e0890b32bc72d4fa700d96a89aa067429c58ca8624f872f25e5c068e138598b4c8c0e
data/README.md CHANGED
@@ -362,33 +362,30 @@ If you don't want to use spring to run your tests, but test_launcher tries to us
362
362
 
363
363
  # Visual Studio Code Support
364
364
 
365
- Install the [Run in Terminal](https://marketplace.visualstudio.com/items?itemName=kortina.run-in-terminal) extension. This allows us to assign keybindings to specific terminal commands. Then we can add TestLauncher keybindings to our `keybindings.json`. Here is an example configuration:
366
-
367
- ```
368
- {
369
- "key": "shift+cmd+r",
370
- "command": "runInTerminal.run",
371
- "args": {
372
- "cmd": "test_launcher ${file}:${line}",
373
- "match": ".*"
374
- }
375
- },
376
- {
377
- "key": "alt+cmd+r",
378
- "command": "runInTerminal.run",
379
- "args": {
380
- "cmd": "test_launcher ${file}",
381
- "match": ".*"
382
- }
383
- },
384
- {
385
- "key": "cmd+r",
386
- "command": "runInTerminal.run",
387
- "args": {
388
- "cmd": "test_launcher --rerun",
389
- "match": ".*"
390
- }
391
- },
365
+ Install the [Terminal Command Keys](https://marketplace.visualstudio.com/items?itemName=petekinnecom.terminal-command-keys) extension (you can search for `petekinnecom.terminal-command-keys` in vscode's extension search box). This allows us to assign keybindings to specific terminal commands. Then we can add TestLauncher keybindings to our `keybindings.json`. Here is an example configuration:
366
+
367
+ ```
368
+ {
369
+ "key": "shift+cmd+r",
370
+ "command": "terminalCommandKeys.run",
371
+ "args": {
372
+ "cmd": "test_launcher ${file}:${line}",
373
+ }
374
+ },
375
+ {
376
+ "key": "alt+cmd+r",
377
+ "command": "terminalCommandKeys.run",
378
+ "args": {
379
+ "cmd": "test_launcher ${file}",
380
+ }
381
+ },
382
+ {
383
+ "key": "cmd+r",
384
+ "command": "terminalCommandKeys.run",
385
+ "args": {
386
+ "cmd": "test_launcher --rerun",
387
+ }
388
+ }
392
389
  ```
393
390
 
394
391
  # Atom Support
@@ -7,18 +7,51 @@ require "test_launcher/cli/request"
7
7
  module TestLauncher
8
8
  module CLI
9
9
  class MultiFrameworkQuery < Struct.new(:cli_options)
10
+ @@mutex = Mutex.new
11
+
10
12
  def command
11
- command = nil
12
- command_finders.each do |command_finder|
13
- command = command_finder.generic_search
14
- break if command
13
+ # do them all at the same time!
14
+ @count = cli_options.frameworks.count
15
+ @finished = 0
16
+ @value = nil
17
+ @now = Time.now.to_f
18
+ @generic_default = nil
19
+
20
+ cli_options.frameworks.each do |framework|
21
+ Thread.new do
22
+ finder = Queries::CommandFinder.new(request_for(framework))
23
+ ex = nil
24
+
25
+ begin
26
+ val = finder.generic_search
27
+ rescue => e
28
+ ex = e
29
+ end
30
+
31
+ @@mutex.synchronize do
32
+ @finished += 1
33
+
34
+ if framework == Frameworks::Generic
35
+ @generic_default = val
36
+ else
37
+ if ex && !@exception
38
+ @exception = ex
39
+ elsif val && !@value
40
+ @value = val
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+
47
+ while (@finished < @count && !@value && !@exception) do
48
+ sleep(0.05)
15
49
  end
16
- command
17
- end
18
50
 
19
- def command_finders
20
- cli_options.frameworks.map do |framework|
21
- Queries::CommandFinder.new(request_for(framework))
51
+ if @exception
52
+ raise @exception
53
+ else
54
+ @value || @generic_default
22
55
  end
23
56
  end
24
57
 
@@ -47,7 +80,9 @@ module TestLauncher
47
80
 
48
81
  if options.rerun
49
82
  shell.reexec
50
- elsif command = MultiFrameworkQuery.new(options).command
83
+ elsif result = MultiFrameworkQuery.new(options).command
84
+ result.fetch(:notifies, []).each {|n| shell.notify(n)}
85
+ command = result.fetch(:command)
51
86
  command = yield(command) if block_given?
52
87
  if command
53
88
  shell.exec(command)
@@ -61,12 +61,13 @@ VERSION: #{TestLauncher::VERSION}
61
61
  elsif @options[:framework] == "generic"
62
62
  [Frameworks::Generic]
63
63
  else
64
- [Frameworks::Minitest,
65
- Frameworks::RSpec,
66
- Frameworks::ExUnit,
67
- Frameworks::Mochajs,
68
- Frameworks::Generic,
69
- ]
64
+ [
65
+ Frameworks::Minitest,
66
+ Frameworks::RSpec,
67
+ Frameworks::ExUnit,
68
+ Frameworks::Mochajs,
69
+ Frameworks::Generic,
70
+ ].select {|f| f.active?}
70
71
  end
71
72
 
72
73
  Options.new(
@@ -110,7 +111,7 @@ VERSION: #{TestLauncher::VERSION}
110
111
  options[:framework] = framework
111
112
  end
112
113
 
113
- opts.on("-n", "--name name", "Name of testcase/example to run. This will pass through to the selected framework without verifying that the example actually exists. This option really only exists to work with tooling that will automatically run your tests. You shouldn't have much need for this.") do |name|
114
+ opts.on("-n", "--name name", "Private option: DO NOT USE") do |name|
114
115
  options[:name] = name
115
116
  end
116
117
 
@@ -6,7 +6,7 @@ module TestLauncher
6
6
  module ExUnit
7
7
  def self.active?
8
8
  # Do not do this outside of the shell.
9
- ! Dir.glob("**/test/**/*.exs").empty?
9
+ `git ls-files '*.exs'`.split("\n").any?
10
10
  end
11
11
 
12
12
  def self.test_case(*a)
@@ -7,7 +7,7 @@ module TestLauncher
7
7
  module Minitest
8
8
  def self.active?
9
9
  # Do not do this outside of the shell.
10
- ! Dir.glob("**/test/**/*_test.rb").empty?
10
+ `git ls-files '*_test.rb'`.split("\n").any?
11
11
  end
12
12
 
13
13
  def self.test_case(*a)
@@ -6,8 +6,7 @@ module TestLauncher
6
6
  module Mochajs
7
7
 
8
8
  def self.active?
9
- output = `find . -name package-lock.json -exec grep mocha {} \;`
10
- !output.chomp.strip.empty?.tap {|r| puts "mochajs: #{r}"}
9
+ `git ls-files '*pec.js'`.split("\n").any?
11
10
  end
12
11
 
13
12
  def self.test_case(*a)
@@ -6,7 +6,7 @@ module TestLauncher
6
6
  module RSpec
7
7
 
8
8
  def self.active?
9
- ! Dir.glob("**/*_spec.rb").empty?
9
+ `git ls-files '*_spec.rb'`.split("\n").any?
10
10
  end
11
11
 
12
12
  def self.test_case(*a)
@@ -117,12 +117,18 @@ module TestLauncher
117
117
  if test_cases.empty?
118
118
  shell.warn("Could not identify file: #{request.search_string}")
119
119
  elsif test_cases.size == 1
120
- shell.notify("Found 1 example in 1 file.")
121
- runner.single_example(test_cases.first)
120
+ {
121
+ notifies: ["Found 1 example in 1 file."],
122
+ command: runner.single_example(test_cases.first)
123
+ }
122
124
  else
123
- shell.notify "Found #{pluralize(test_cases.size, "example")} in #{pluralize(file_count, "file")}."
124
- shell.notify "Running most recently edited. Run with '--all' to run all the tests."
125
- runner.single_example(most_recently_edited_test_case)
125
+ {
126
+ notifies: [
127
+ "Found #{pluralize(test_cases.size, "example")} in #{pluralize(file_count, "file")}.",
128
+ "Running most recently edited. Run with '--all' to run all the tests."
129
+ ],
130
+ command: runner.single_example(most_recently_edited_test_case)
131
+ }
126
132
  end
127
133
  end
128
134
 
@@ -144,7 +150,9 @@ module TestLauncher
144
150
  class RerunQuery < BaseQuery
145
151
  def command
146
152
  if File.exists?("/tmp/test_launcher__last_run")
147
- File.read("/tmp/test_launcher__last_run").chomp
153
+ {
154
+ command: File.read("/tmp/test_launcher__last_run").chomp
155
+ }
148
156
  end
149
157
  end
150
158
  end
@@ -154,8 +162,10 @@ module TestLauncher
154
162
  return unless request.search_string.include?(" ")
155
163
  return if test_cases.empty?
156
164
 
157
- shell.notify("Found #{pluralize(file_count, "file")}.")
158
- runner.multiple_files(test_cases)
165
+ {
166
+ notifies: ["Found #{pluralize(file_count, "file")}."],
167
+ command: runner.multiple_files(test_cases)
168
+ }
159
169
  end
160
170
 
161
171
  def test_cases
@@ -194,15 +204,24 @@ module TestLauncher
194
204
  return if test_cases.empty?
195
205
 
196
206
  if one_file?
197
- shell.notify "Found #{pluralize(file_count, "file")}."
198
- runner.single_file(test_cases.first)
207
+ {
208
+ notifies: ["Found #{pluralize(file_count, "file")}."],
209
+ command: runner.single_file(test_cases.first)
210
+ }
199
211
  elsif request.run_all?
200
- shell.notify "Found #{pluralize(file_count, "file")}."
201
- runner.multiple_files(test_cases)
212
+ {
213
+ notifies: ["Found #{pluralize(file_count, "file")}."],
214
+ command: runner.multiple_files(test_cases)
215
+ }
202
216
  else
203
- shell.notify "Found #{pluralize(file_count, "file")}."
204
- shell.notify "Running most recently edited. Run with '--all' to run all the tests."
205
- runner.single_file(most_recently_edited_test_case)
217
+ {
218
+ notifies: [
219
+ "Found #{pluralize(file_count, "file")}.",
220
+ "Running most recently edited. Run with '--all' to run all the tests.",
221
+
222
+ ],
223
+ command: runner.single_file(most_recently_edited_test_case)
224
+ }
206
225
  end
207
226
  end
208
227
 
@@ -222,18 +241,28 @@ module TestLauncher
222
241
  return if test_cases.empty?
223
242
 
224
243
  if one_example?
225
- shell.notify("Found 1 example in 1 file.")
226
- runner.single_example(test_cases.first)
244
+ {
245
+ notifies: ["Found 1 example in 1 file."],
246
+ command: runner.single_example(test_cases.first)
247
+ }
227
248
  elsif one_file?
228
- shell.notify("Found #{test_cases.size} examples in 1 file.")
229
- runner.multiple_examples_same_file(test_cases) # it will regex with the query
249
+ {
250
+ notifies: ["Found #{test_cases.size} examples in 1 file."],
251
+ command: runner.multiple_examples_same_file(test_cases) # it will regex with the query
252
+ }
230
253
  elsif request.run_all?
231
- shell.notify "Found #{pluralize(test_cases.size, "example")} in #{pluralize(file_count, "file")}."
232
- runner.multiple_examples(test_cases)
254
+ {
255
+ notifies: ["Found #{pluralize(test_cases.size, "example")} in #{pluralize(file_count, "file")}."],
256
+ command: runner.multiple_examples(test_cases)
257
+ }
233
258
  else
234
- shell.notify "Found #{pluralize(test_cases.size, "example")} in #{pluralize(file_count, "file")}."
235
- shell.notify "Running most recently edited. Run with '--all' to run all the tests."
236
- runner.single_example(most_recently_edited_test_case) # let it regex the query
259
+ {
260
+ notifies: [
261
+ "Found #{pluralize(test_cases.size, "example")} in #{pluralize(file_count, "file")}.",
262
+ "Running most recently edited. Run with '--all' to run all the tests.",
263
+ ],
264
+ command: runner.single_example(most_recently_edited_test_case) # let it regex the query
265
+ }
237
266
  end
238
267
  end
239
268
 
@@ -264,14 +293,20 @@ module TestLauncher
264
293
  return if test_cases.empty?
265
294
 
266
295
  if one_example?
267
- shell.notify("Found 1 example in 1 file.")
268
- runner.single_example(test_cases.first)
296
+ {
297
+ notifies: ["Found 1 example in 1 file."],
298
+ command: runner.single_example(test_cases.first)
299
+ }
269
300
  elsif one_file?
270
- shell.notify("Found #{test_cases.size} examples in 1 file.")
271
- runner.multiple_examples_same_file(test_cases) # it will regex with the query
301
+ {
302
+ notifies: ["Found #{test_cases.size} examples in 1 file."],
303
+ command: runner.multiple_examples_same_file(test_cases) # it will regex with the query
304
+ }
272
305
  else
273
- shell.notify "Found #{pluralize(test_cases.size, "example")} in #{pluralize(file_count, "file")}."
274
- runner.multiple_examples(test_cases)
306
+ {
307
+ notifies: ["Found #{pluralize(test_cases.size, "example")} in #{pluralize(file_count, "file")}."],
308
+ command: runner.multiple_examples(test_cases)
309
+ }
275
310
  end
276
311
  end
277
312
 
@@ -306,15 +341,23 @@ module TestLauncher
306
341
  return if test_cases.empty?
307
342
 
308
343
  if one_file?
309
- shell.notify "Found #{pluralize(file_count, "file")}."
310
- runner.single_file(test_cases.first)
344
+ {
345
+ notifies: ["Found #{pluralize(file_count, "file")}."],
346
+ command: runner.single_file(test_cases.first)
347
+ }
311
348
  elsif request.run_all?
312
- shell.notify "Found #{pluralize(file_count, "file")}."
313
- runner.multiple_files(test_cases)
349
+ {
350
+ notifies: ["Found #{pluralize(file_count, "file")}."],
351
+ command: runner.multiple_files(test_cases)
352
+ }
314
353
  else
315
- shell.notify "Found #{pluralize(file_count, "file")}."
316
- shell.notify "Running most recently edited. Run with '--all' to run all the tests."
317
- runner.single_file(most_recently_edited_test_case)
354
+ {
355
+ notifies: [
356
+ "Found #{pluralize(file_count, "file")}.",
357
+ "Running most recently edited. Run with '--all' to run all the tests.",
358
+ ],
359
+ command: runner.single_file(most_recently_edited_test_case)
360
+ }
318
361
  end
319
362
  end
320
363
 
@@ -343,6 +386,7 @@ module TestLauncher
343
386
  end
344
387
 
345
388
  def files_found_by_joining_terms
389
+ return [] unless request.search_string.include?(" ")
346
390
  joined_query = request.search_string.squeeze(" ").gsub(" ", "|")
347
391
  @files_found_by_joining_terms ||= searcher.grep(joined_query)
348
392
  end
@@ -356,12 +400,18 @@ module TestLauncher
356
400
  return unless test_cases.any?
357
401
 
358
402
  if one_file?
359
- shell.notify "Found #{pluralize(file_count, "file")}."
360
- runner.by_line_number(test_cases.first)
403
+ {
404
+ notifies: ["Found #{pluralize(file_count, "file")}."],
405
+ command: runner.by_line_number(test_cases.first)
406
+ }
361
407
  else
362
- shell.notify "Found #{pluralize(file_count, "file")}."
363
- shell.notify "Cannot run all tests with --all because test frameworks don't accept multiple file/lines combos."
364
- runner.by_line_number(most_recently_edited_test_case)
408
+ {
409
+ notifies: [
410
+ "Found #{pluralize(file_count, "file")}.",
411
+ "Cannot run all tests with --all because test frameworks don't accept multiple file/lines combos."
412
+ ],
413
+ command: runner.by_line_number(most_recently_edited_test_case)
414
+ }
365
415
  end
366
416
  end
367
417
 
@@ -27,7 +27,7 @@ module TestLauncher
27
27
  def exec(cmd)
28
28
  notify cmd
29
29
  $stdout.flush
30
- Bundler.clean_exec(cmd)
30
+ Kernel.exec cmd
31
31
  end
32
32
 
33
33
  def warn(msg)
@@ -1,3 +1,3 @@
1
1
  module TestLauncher
2
- VERSION = "2.15.0"
2
+ VERSION = "2.18.0"
3
3
  end
@@ -106,7 +106,7 @@ module TestLauncher
106
106
 
107
107
  command = ExampleNameQuery.new(request, default_command_finder).command
108
108
 
109
- assert_equal "single_example file_1_test.rb one_example", command
109
+ assert_equal "single_example file_1_test.rb one_example", command[:command]
110
110
  end
111
111
 
112
112
  def test_command__one_example_found__notifies
@@ -120,9 +120,9 @@ module TestLauncher
120
120
  command = ExampleNameQuery.new(request, default_command_finder).command
121
121
 
122
122
  messages = [
123
- ["Found 1 example in 1 file."],
123
+ "Found 1 example in 1 file.",
124
124
  ]
125
- assert_equal messages, default_shell.recall(:notify)
125
+ assert_equal messages, command[:notifies]
126
126
  end
127
127
 
128
128
  def test_command__multiple_examples__one_file
@@ -135,7 +135,7 @@ module TestLauncher
135
135
 
136
136
  command = ExampleNameQuery.new(request, default_command_finder).command
137
137
 
138
- assert_equal "multiple_examples_same_file file_1_test.rb same_file", command
138
+ assert_equal "multiple_examples_same_file file_1_test.rb same_file", command[:command]
139
139
  end
140
140
 
141
141
  def test_command__multiple_examples__one_file__notifies
@@ -149,9 +149,9 @@ module TestLauncher
149
149
  command = ExampleNameQuery.new(request, default_command_finder).command
150
150
 
151
151
  messages = [
152
- ["Found 2 examples in 1 file."],
152
+ "Found 2 examples in 1 file.",
153
153
  ]
154
- assert_equal messages, default_shell.recall(:notify)
154
+ assert_equal messages, command[:notifies]
155
155
  end
156
156
 
157
157
  def test_command__multiple_examples__multiple_files__no_all
@@ -165,7 +165,7 @@ module TestLauncher
165
165
 
166
166
  command = ExampleNameQuery.new(request, default_command_finder).command
167
167
 
168
- assert_equal "single_example file_2_test.rb different_files", command
168
+ assert_equal "single_example file_2_test.rb different_files", command[:command]
169
169
  end
170
170
 
171
171
  def test_command__multiple_examples__multiple_files__no_all__notifies
@@ -180,10 +180,10 @@ module TestLauncher
180
180
  command = ExampleNameQuery.new(request, default_command_finder).command
181
181
 
182
182
  messages = [
183
- ["Found 2 examples in 2 files."],
184
- ["Running most recently edited. Run with '--all' to run all the tests."],
183
+ "Found 2 examples in 2 files.",
184
+ "Running most recently edited. Run with '--all' to run all the tests.",
185
185
  ]
186
- assert_equal messages, default_shell.recall(:notify)
186
+ assert_equal messages, command[:notifies]
187
187
  end
188
188
 
189
189
  def test_command__multiple_examples__multiple_files__all
@@ -197,7 +197,7 @@ module TestLauncher
197
197
 
198
198
  command = ExampleNameQuery.new(request, default_command_finder).command
199
199
 
200
- assert_equal "multiple_examples file_1_test.rb file_2_test.rb", command
200
+ assert_equal "multiple_examples file_1_test.rb file_2_test.rb", command[:command]
201
201
  end
202
202
 
203
203
  def test_command__multiple_examples__multiple_files__all__notifies
@@ -212,9 +212,9 @@ module TestLauncher
212
212
  command = ExampleNameQuery.new(request, default_command_finder).command
213
213
 
214
214
  messages = [
215
- ["Found 2 examples in 2 files."],
215
+ "Found 2 examples in 2 files.",
216
216
  ]
217
- assert_equal messages, default_shell.recall(:notify)
217
+ assert_equal messages, command[:notifies]
218
218
  end
219
219
  end
220
220
  end
@@ -105,7 +105,7 @@ module TestLauncher
105
105
 
106
106
  command = FullRegexQuery.new(request, default_command_finder).command
107
107
 
108
- assert_equal "single_file single_test.rb", command
108
+ assert_equal "single_file single_test.rb", command[:command]
109
109
  end
110
110
 
111
111
  def test_command__multiple_matches_same_file
@@ -118,7 +118,7 @@ module TestLauncher
118
118
 
119
119
  command = FullRegexQuery.new(request, default_command_finder).command
120
120
 
121
- assert_equal "single_file multiple_matches_1_test.rb", command
121
+ assert_equal "single_file multiple_matches_1_test.rb", command[:command]
122
122
  end
123
123
 
124
124
  def test_command__multiple_matches_different_files__no_all
@@ -132,7 +132,7 @@ module TestLauncher
132
132
 
133
133
  command = FullRegexQuery.new(request, default_command_finder).command
134
134
 
135
- assert_equal "single_file multiple_matches_2_test.rb", command
135
+ assert_equal "single_file multiple_matches_2_test.rb", command[:command]
136
136
  end
137
137
 
138
138
  def test_command__multiple_matches_different_files__all
@@ -146,7 +146,7 @@ module TestLauncher
146
146
 
147
147
  command = FullRegexQuery.new(request, default_command_finder).command
148
148
 
149
- assert_equal "multiple_files multiple_matches_1_test.rb multiple_matches_2_test.rb", command
149
+ assert_equal "multiple_files multiple_matches_1_test.rb multiple_matches_2_test.rb", command[:command]
150
150
  end
151
151
  end
152
152
  end
@@ -84,7 +84,7 @@ module TestLauncher
84
84
 
85
85
  assert_equal [[whole_file_test_case]], default_runner.recall(:by_line_number)
86
86
 
87
- assert_equal "by_line_number_return", command
87
+ assert_equal "by_line_number_return", command[:command]
88
88
  end
89
89
 
90
90
 
@@ -100,7 +100,7 @@ module TestLauncher
100
100
 
101
101
  assert_equal [[example_name_test_case]], default_runner.recall(:by_line_number)
102
102
 
103
- assert_equal "by_line_number_return", command
103
+ assert_equal "by_line_number_return", command[:command]
104
104
  end
105
105
  end
106
106
  end
@@ -107,7 +107,7 @@ module TestLauncher
107
107
  command = MultiPathQuery.new(request, default_command_finder).command
108
108
 
109
109
  assert_equal [[[file_1_test_case, file_2_test_case]]], default_runner.recall(:multiple_files)
110
- assert_equal "multiple_files_return", command
110
+ assert_equal "multiple_files_return", command[:command]
111
111
  end
112
112
 
113
113
  def test_command__finds_files_for_2_of_2_terms__extra_files_found
@@ -119,7 +119,7 @@ module TestLauncher
119
119
  )
120
120
  command = MultiPathQuery.new(request, default_command_finder).command
121
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
122
+ assert_equal "multiple_files_return", command[:command]
123
123
  end
124
124
  end
125
125
  end
@@ -92,7 +92,7 @@ module TestLauncher
92
92
  command = PathQuery.new(request, default_command_finder).command
93
93
 
94
94
  assert_equal [[normal_test_case]], default_runner.recall(:single_file)
95
- assert_equal "single_file_return", command
95
+ assert_equal "single_file_return", command[:command]
96
96
  end
97
97
 
98
98
  def test_command__one_file_found__has_correct_test_case
@@ -120,7 +120,7 @@ module TestLauncher
120
120
 
121
121
  command = PathQuery.new(request, default_command_finder).command
122
122
 
123
- assert_equal [["Found 1 file."]], default_shell.recall(:notify)
123
+ assert_equal ["Found 1 file."], command[:notifies]
124
124
  end
125
125
 
126
126
  def test_command__multiple_files_found__no_all__runs_single_file
@@ -135,7 +135,7 @@ module TestLauncher
135
135
  command = PathQuery.new(request, default_command_finder).command
136
136
 
137
137
  assert_equal [[new_test_case]], default_runner.recall(:single_file)
138
- assert_equal "single_file_return", command
138
+ assert_equal "single_file_return", command[:command]
139
139
  end
140
140
 
141
141
  def test_command__multiple_files_found__no_all__notifies
@@ -150,10 +150,10 @@ module TestLauncher
150
150
  command = PathQuery.new(request, default_command_finder).command
151
151
 
152
152
  messages = [
153
- ["Found 3 files."],
154
- ["Running most recently edited. Run with '--all' to run all the tests."]
153
+ "Found 3 files.",
154
+ "Running most recently edited. Run with '--all' to run all the tests."
155
155
  ]
156
- assert_equal messages, default_shell.recall(:notify)
156
+ assert_equal messages, command[:notifies]
157
157
  end
158
158
 
159
159
  def test_command__multiple_files_found__all__runs_single_file
@@ -168,7 +168,7 @@ module TestLauncher
168
168
  command = PathQuery.new(request, default_command_finder).command
169
169
 
170
170
  assert_equal [[[old_test_case, older_test_case, new_test_case]]], default_runner.recall(:multiple_files)
171
- assert_equal "multiple_files_return", command
171
+ assert_equal "multiple_files_return", command[:command]
172
172
  end
173
173
 
174
174
  def test_command__multiple_files_found__all__notifies
@@ -183,9 +183,9 @@ module TestLauncher
183
183
  command = PathQuery.new(request, default_command_finder).command
184
184
 
185
185
  messages = [
186
- ["Found 3 files."]
186
+ "Found 3 files."
187
187
  ]
188
- assert_equal messages, default_shell.recall(:notify)
188
+ assert_equal messages, command[:notifies]
189
189
  end
190
190
  end
191
191
  end
@@ -18,6 +18,6 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "bundler", "~> 1.7"
21
+ spec.add_development_dependency "bundler", "~> 1.7"
22
22
  spec.add_development_dependency "rake", "~> 10.0"
23
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test_launcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.15.0
4
+ version: 2.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pete Kinnecom
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-24 00:00:00.000000000 Z
11
+ date: 2018-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -17,7 +17,7 @@ dependencies:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.7'
20
- type: :runtime
20
+ type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements: