coverband 4.2.0.beta → 4.2.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +33 -8
  3. data/Rakefile +1 -1
  4. data/changes.md +28 -7
  5. data/coverband.gemspec +2 -0
  6. data/lib/coverband.rb +5 -0
  7. data/lib/coverband/adapters/base.rb +20 -4
  8. data/lib/coverband/adapters/file_store.rb +8 -0
  9. data/lib/coverband/adapters/redis_store.rb +33 -2
  10. data/lib/coverband/at_exit.rb +1 -1
  11. data/lib/coverband/collectors/coverage.rb +11 -1
  12. data/lib/coverband/configuration.rb +18 -2
  13. data/lib/coverband/integrations/background.rb +6 -1
  14. data/lib/coverband/integrations/resque.rb +7 -2
  15. data/lib/coverband/reporters/base.rb +8 -38
  16. data/lib/coverband/reporters/html_report.rb +1 -1
  17. data/lib/coverband/reporters/web.rb +3 -3
  18. data/lib/coverband/utils/file_path_helper.rb +57 -0
  19. data/lib/coverband/utils/html_formatter.rb +9 -1
  20. data/lib/coverband/utils/railtie.rb +1 -1
  21. data/lib/coverband/utils/tasks.rb +9 -0
  22. data/lib/coverband/version.rb +1 -1
  23. data/test/benchmarks/benchmark.rake +36 -1
  24. data/test/benchmarks/coverage_fork.sh +37 -0
  25. data/test/{unit/adapters_base_test.rb → coverband/adapters/base_test.rb} +1 -1
  26. data/test/{unit/adapters_file_store_test.rb → coverband/adapters/file_store_test.rb} +1 -1
  27. data/test/{unit/adapters_redis_store_test.rb → coverband/adapters/redis_store_test.rb} +1 -1
  28. data/test/{unit → coverband}/at_exit_test.rb +0 -0
  29. data/test/{unit/collectors_coverage_test.rb → coverband/collectors/coverage_test.rb} +16 -2
  30. data/test/{unit → coverband}/configuration_test.rb +13 -3
  31. data/test/{unit → coverband}/coverband_test.rb +0 -0
  32. data/test/{unit → coverband/integrations}/background_test.rb +1 -1
  33. data/test/{unit → coverband/integrations}/middleware_test.rb +1 -1
  34. data/test/{unit/rack_server_checkout_test.rb → coverband/integrations/rack_server_check_test.rb} +1 -1
  35. data/test/{unit → coverband/integrations}/resque_worker_test.rb +9 -8
  36. data/test/{unit → coverband/integrations}/test_resque_job.rb +0 -0
  37. data/test/coverband/reporters/base_test.rb +168 -0
  38. data/test/{unit/reports_console_test.rb → coverband/reporters/console_test.rb} +6 -5
  39. data/test/{unit/reports_html_test.rb → coverband/reporters/html_test.rb} +1 -1
  40. data/test/{unit/reports_web_test.rb → coverband/reporters/web_test.rb} +2 -2
  41. data/test/{unit → coverband}/utils/file_groups_test.rb +0 -0
  42. data/test/{unit → coverband}/utils/file_list_test.rb +0 -0
  43. data/test/{unit → coverband}/utils/gem_list_test.rb +0 -0
  44. data/test/{unit → coverband}/utils/lines_classifier_test.rb +0 -0
  45. data/test/{unit → coverband}/utils/result_test.rb +0 -0
  46. data/test/{unit → coverband}/utils/s3_report_test.rb +0 -0
  47. data/test/{unit → coverband}/utils/source_file_line_test.rb +0 -0
  48. data/test/{unit → coverband}/utils/source_file_test.rb +0 -0
  49. data/test/{unit/dog.rb → dog.rb} +0 -0
  50. data/test/{unit → integration}/full_stack_test.rb +4 -2
  51. data/test/{unit → integration}/rails_full_stack_test.rb +4 -3
  52. data/test/{unit → integration}/rails_gems_full_stack_test.rb +2 -1
  53. data/views/layout.erb +1 -1
  54. data/views/settings.erb +35 -0
  55. metadata +78 -59
  56. data/test/unit/reports_base_test.rb +0 -117
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require File.expand_path('../test_helper', File.dirname(__FILE__))
3
+ require File.expand_path('../../test_helper', File.dirname(__FILE__))
4
4
 
5
5
  class HTMLReportTest < Minitest::Test
6
6
  REDIS_STORAGE_FORMAT_VERSION = Coverband::Adapters::RedisStore::REDIS_STORAGE_FORMAT_VERSION
@@ -20,13 +20,14 @@ class HTMLReportTest < Minitest::Test
20
20
  end
21
21
  Coverband.configuration.logger.stubs('info')
22
22
  mock_file_hash
23
- Coverband::Reporters::ConsoleReport
24
- .expects(:current_root)
25
- .returns('app_path')
23
+ Coverband.configuration
24
+ .expects(:current_root)
25
+ .at_least_once
26
+ .returns('app_path')
26
27
  @store.send(:save_report, basic_coverage)
27
28
 
28
29
  report = Coverband::Reporters::ConsoleReport.report(@store)
29
- expected = { 'app_path/dog.rb' => [0, 1, 2] }
30
+ expected = { './dog.rb' => [0, 1, 2] }
30
31
  assert_equal(expected.keys, report.keys)
31
32
  end
32
33
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require File.expand_path('../test_helper', File.dirname(__FILE__))
3
+ require File.expand_path('../../test_helper', File.dirname(__FILE__))
4
4
 
5
5
  class ReportHTMLTest < Minitest::Test
6
6
  REDIS_STORAGE_FORMAT_VERSION = Coverband::Adapters::RedisStore::REDIS_STORAGE_FORMAT_VERSION
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require File.expand_path('../test_helper', File.dirname(__FILE__))
3
+ require File.expand_path('../../test_helper', File.dirname(__FILE__))
4
4
  require 'aws-sdk-s3'
5
- require File.expand_path('../../lib/coverband/reporters/web', File.dirname(__FILE__))
5
+ require File.expand_path('../../../lib/coverband/reporters/web', File.dirname(__FILE__))
6
6
  require 'rack/test'
7
7
 
8
8
  ENV['RACK_ENV'] = 'test'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -6,6 +6,7 @@ require 'rack'
6
6
  class FullStackTest < Minitest::Test
7
7
  REDIS_STORAGE_FORMAT_VERSION = Coverband::Adapters::RedisStore::REDIS_STORAGE_FORMAT_VERSION
8
8
  TEST_RACK_APP = '../fake_app/basic_rack.rb'
9
+ RELATIVE_FILE = './fake_app/basic_rack.rb'
9
10
 
10
11
  def setup
11
12
  super
@@ -15,6 +16,7 @@ class FullStackTest < Minitest::Test
15
16
  config.store = Coverband::Adapters::RedisStore.new(Redis.new)
16
17
  config.s3_bucket = nil
17
18
  config.background_reporting_enabled = false
19
+ config.root_paths = ["#{File.expand_path('../', File.dirname(__FILE__))}/"]
18
20
  end
19
21
  Coverband.configuration.store.clear!
20
22
  Coverband.start
@@ -29,13 +31,13 @@ class FullStackTest < Minitest::Test
29
31
  assert_equal 'Hello Rack!', results.last
30
32
  sleep(0.1)
31
33
  expected = [nil, nil, 1, nil, 1, 1, 1, nil, nil]
32
- assert_equal expected, Coverband.configuration.store.coverage[@rack_file]['data']
34
+ assert_equal expected, Coverband.configuration.store.coverage[RELATIVE_FILE]['data']
33
35
 
34
36
  # additional calls increase count by 1
35
37
  middleware.call(request)
36
38
  sleep(0.1)
37
39
  expected = [nil, nil, 1, nil, 1, 1, 2, nil, nil]
38
- assert_equal expected, Coverband.configuration.store.coverage[@rack_file]['data']
40
+ assert_equal expected, Coverband.configuration.store.coverage[RELATIVE_FILE]['data']
39
41
  end
40
42
 
41
43
  test 'call app with gem tracking' do
@@ -10,6 +10,7 @@ class RailsFullStackTest < Minitest::Test
10
10
  super
11
11
  # The normal relative directory lookup of coverband won't work for our dummy rails project
12
12
  Coverband.configure("./test/rails#{Rails::VERSION::MAJOR}_dummy/config/coverband.rb")
13
+ Coverband.configuration.background_reporting_enabled = false
13
14
  Coverband.start
14
15
  end
15
16
 
@@ -21,8 +22,8 @@ class RailsFullStackTest < Minitest::Test
21
22
 
22
23
  test 'this is how we do it' do
23
24
  visit '/dummy/show'
25
+ Coverband.report_coverage(true)
24
26
  assert_content('I am no dummy')
25
- sleep 0.2
26
27
  visit '/coverage'
27
28
  within page.find('a', text: /dummy_controller.rb/).find(:xpath, '../..') do
28
29
  assert_selector('td', text: '100.0 %')
@@ -46,7 +47,7 @@ class RailsFullStackTest < Minitest::Test
46
47
  3.times do
47
48
  visit '/dummy/show'
48
49
  assert_content('I am no dummy')
49
- Coverband::Collectors::Coverage.instance.report_coverage(true)
50
+ Coverband.report_coverage(true)
50
51
  end
51
52
 
52
53
  previous_out = $stdout
@@ -57,7 +58,7 @@ class RailsFullStackTest < Minitest::Test
57
58
  15.times do
58
59
  visit '/dummy/show'
59
60
  assert_content('I am no dummy')
60
- Coverband::Collectors::Coverage.instance.report_coverage(true)
61
+ Coverband.report_coverage(true)
61
62
  # this is expected to retain memory across requests
62
63
  # clear it to remove the false positive from test
63
64
  Coverband::Collectors::Coverage.instance.send(:add_previous_results, nil)
@@ -12,6 +12,7 @@ class RailsGemsFullStackTest < Minitest::Test
12
12
  Coverband.configure("./test/rails#{Rails::VERSION::MAJOR}_dummy/config/coverband.rb")
13
13
  Coverband.configuration.track_gems = true
14
14
  Coverband.configuration.gem_details = true
15
+ Coverband.configuration.background_reporting_enabled = false
15
16
  Coverband.start
16
17
  require 'rainbow'
17
18
  Rainbow('this text is red').red
@@ -26,7 +27,7 @@ class RailsGemsFullStackTest < Minitest::Test
26
27
  test 'this is how gem it' do
27
28
  visit '/dummy/show'
28
29
  assert_content('I am no dummy')
29
- sleep 0.2
30
+ Coverband.report_coverage(true)
30
31
  visit '/coverage'
31
32
  assert_content('Coverband Admin')
32
33
  assert_content('Gems')
data/views/layout.erb CHANGED
@@ -16,7 +16,7 @@
16
16
  <div id="wrapper" style="display:none;">
17
17
  <div id="header">
18
18
  <a href='<%= base_path %>'>Coverband Admin</a> &nbsp;
19
- <a href='<%= base_path %>settings'>Settings</a> &nbsp;
19
+ <a href='<%= base_path %>settings'>Info</a> &nbsp;
20
20
  <%= button("#{base_path}collect_coverage", 'force coverage collection') %> &nbsp;
21
21
  <%= button("#{base_path}reload_files", 'reload Coverband files') %> &nbsp;
22
22
  <% if Coverband.configuration.web_enable_clear %>
@@ -0,0 +1,35 @@
1
+ <!DOCTYPE html>
2
+ <html xmlns='http://www.w3.org/1999/xhtml'>
3
+ <head>
4
+ <title>Coverband Info: <%= Coverband::VERSION %></title>
5
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
6
+ <script src='<%= assets_path('application.js') %>' type='text/javascript'></script>
7
+ <link href='<%= assets_path('application.css') %>' media='screen, projection, print' rel='stylesheet' type='text/css'>
8
+ <link rel="icon" type="image/png" href="<%= assets_path('favicon.png') %>" />
9
+ </head>
10
+
11
+ <body>
12
+ <div id="wrapper" style="">
13
+ <div id="header">
14
+ <a href='<%= base_path %>'>Coverband Admin</a> &nbsp;
15
+ <a href='<%= base_path %>settings'>Info</a> &nbsp;
16
+ </div>
17
+ <div id="content">
18
+ <dl>
19
+ <% Coverband.configuration.to_h.each_pair do |key,value| %>
20
+ <dt><%= key %></dt>
21
+ <dd><%= value %></dd>
22
+ <% end %>
23
+
24
+ <dt>Size (in bytes)</dt>
25
+ <dd><%= Coverband.configuration.store.size %></dd>
26
+ <dt>Size (in MiB)</dt>
27
+ <dd><%= Coverband.configuration.store.size_in_mib %></dd>
28
+ </dl>
29
+ </div>
30
+ <div id="footer">
31
+ Generated by <a href="http://github.com/danmayer/coverband">Coverband</a> v<%= Coverband::VERSION %>
32
+ </div>
33
+ </div>
34
+ </body>
35
+ </html>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coverband
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0.beta
4
+ version: 4.2.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Mayer
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-02-09 00:00:00.000000000 Z
12
+ date: 2019-03-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk-s3
@@ -207,6 +207,20 @@ dependencies:
207
207
  - - ">="
208
208
  - !ruby/object:Gem::Version
209
209
  version: '0'
210
+ - !ruby/object:Gem::Dependency
211
+ name: minitest-profile
212
+ requirement: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ type: :development
218
+ prerelease: false
219
+ version_requirements: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - ">="
222
+ - !ruby/object:Gem::Version
223
+ version: '0'
210
224
  - !ruby/object:Gem::Dependency
211
225
  name: redis
212
226
  requirement: !ruby/object:Gem::Requirement
@@ -257,6 +271,7 @@ files:
257
271
  - lib/coverband/reporters/web.rb
258
272
  - lib/coverband/utils/file_groups.rb
259
273
  - lib/coverband/utils/file_list.rb
274
+ - lib/coverband/utils/file_path_helper.rb
260
275
  - lib/coverband/utils/gem_list.rb
261
276
  - lib/coverband/utils/html_formatter.rb
262
277
  - lib/coverband/utils/lines_classifier.rb
@@ -292,8 +307,34 @@ files:
292
307
  - public/magnify.png
293
308
  - test/benchmarks/.gitignore
294
309
  - test/benchmarks/benchmark.rake
310
+ - test/benchmarks/coverage_fork.sh
295
311
  - test/benchmarks/dog.rb
296
312
  - test/benchmarks/graph_bench.sh
313
+ - test/coverband/adapters/base_test.rb
314
+ - test/coverband/adapters/file_store_test.rb
315
+ - test/coverband/adapters/redis_store_test.rb
316
+ - test/coverband/at_exit_test.rb
317
+ - test/coverband/collectors/coverage_test.rb
318
+ - test/coverband/configuration_test.rb
319
+ - test/coverband/coverband_test.rb
320
+ - test/coverband/integrations/background_test.rb
321
+ - test/coverband/integrations/middleware_test.rb
322
+ - test/coverband/integrations/rack_server_check_test.rb
323
+ - test/coverband/integrations/resque_worker_test.rb
324
+ - test/coverband/integrations/test_resque_job.rb
325
+ - test/coverband/reporters/base_test.rb
326
+ - test/coverband/reporters/console_test.rb
327
+ - test/coverband/reporters/html_test.rb
328
+ - test/coverband/reporters/web_test.rb
329
+ - test/coverband/utils/file_groups_test.rb
330
+ - test/coverband/utils/file_list_test.rb
331
+ - test/coverband/utils/gem_list_test.rb
332
+ - test/coverband/utils/lines_classifier_test.rb
333
+ - test/coverband/utils/result_test.rb
334
+ - test/coverband/utils/s3_report_test.rb
335
+ - test/coverband/utils/source_file_line_test.rb
336
+ - test/coverband/utils/source_file_test.rb
337
+ - test/dog.rb
297
338
  - test/fake_app/basic_rack.rb
298
339
  - test/fixtures/app/controllers/sample_controller.rb
299
340
  - test/fixtures/app/models/user.rb
@@ -302,6 +343,9 @@ files:
302
343
  - test/fixtures/skipped.rb
303
344
  - test/fixtures/skipped_and_executed.rb
304
345
  - test/fixtures/utf-8.rb
346
+ - test/integration/full_stack_test.rb
347
+ - test/integration/rails_full_stack_test.rb
348
+ - test/integration/rails_gems_full_stack_test.rb
305
349
  - test/rails4_dummy/app/controllers/dummy_controller.rb
306
350
  - test/rails4_dummy/config.ru
307
351
  - test/rails4_dummy/config/application.rb
@@ -318,37 +362,10 @@ files:
318
362
  - test/rails5_dummy/config/routes.rb
319
363
  - test/rails_test_helper.rb
320
364
  - test/test_helper.rb
321
- - test/unit/adapters_base_test.rb
322
- - test/unit/adapters_file_store_test.rb
323
- - test/unit/adapters_redis_store_test.rb
324
- - test/unit/at_exit_test.rb
325
- - test/unit/background_test.rb
326
- - test/unit/collectors_coverage_test.rb
327
- - test/unit/configuration_test.rb
328
- - test/unit/coverband_test.rb
329
- - test/unit/dog.rb
330
- - test/unit/full_stack_test.rb
331
- - test/unit/middleware_test.rb
332
- - test/unit/rack_server_checkout_test.rb
333
- - test/unit/rails_full_stack_test.rb
334
- - test/unit/rails_gems_full_stack_test.rb
335
- - test/unit/reports_base_test.rb
336
- - test/unit/reports_console_test.rb
337
- - test/unit/reports_html_test.rb
338
- - test/unit/reports_web_test.rb
339
- - test/unit/resque_worker_test.rb
340
- - test/unit/test_resque_job.rb
341
- - test/unit/utils/file_groups_test.rb
342
- - test/unit/utils/file_list_test.rb
343
- - test/unit/utils/gem_list_test.rb
344
- - test/unit/utils/lines_classifier_test.rb
345
- - test/unit/utils/result_test.rb
346
- - test/unit/utils/s3_report_test.rb
347
- - test/unit/utils/source_file_line_test.rb
348
- - test/unit/utils/source_file_test.rb
349
365
  - views/file_list.erb
350
366
  - views/gem_list.erb
351
367
  - views/layout.erb
368
+ - views/settings.erb
352
369
  - views/source_file.erb
353
370
  homepage: https://github.com/danmayer/coverband
354
371
  licenses:
@@ -369,15 +386,42 @@ required_rubygems_version: !ruby/object:Gem::Requirement
369
386
  - !ruby/object:Gem::Version
370
387
  version: 1.3.1
371
388
  requirements: []
372
- rubygems_version: 3.0.2
389
+ rubyforge_project:
390
+ rubygems_version: 2.7.8
373
391
  signing_key:
374
392
  specification_version: 4
375
393
  summary: Rack middleware to help measure production code usage (LOC runtime usage)
376
394
  test_files:
377
395
  - test/benchmarks/.gitignore
378
396
  - test/benchmarks/benchmark.rake
397
+ - test/benchmarks/coverage_fork.sh
379
398
  - test/benchmarks/dog.rb
380
399
  - test/benchmarks/graph_bench.sh
400
+ - test/coverband/adapters/base_test.rb
401
+ - test/coverband/adapters/file_store_test.rb
402
+ - test/coverband/adapters/redis_store_test.rb
403
+ - test/coverband/at_exit_test.rb
404
+ - test/coverband/collectors/coverage_test.rb
405
+ - test/coverband/configuration_test.rb
406
+ - test/coverband/coverband_test.rb
407
+ - test/coverband/integrations/background_test.rb
408
+ - test/coverband/integrations/middleware_test.rb
409
+ - test/coverband/integrations/rack_server_check_test.rb
410
+ - test/coverband/integrations/resque_worker_test.rb
411
+ - test/coverband/integrations/test_resque_job.rb
412
+ - test/coverband/reporters/base_test.rb
413
+ - test/coverband/reporters/console_test.rb
414
+ - test/coverband/reporters/html_test.rb
415
+ - test/coverband/reporters/web_test.rb
416
+ - test/coverband/utils/file_groups_test.rb
417
+ - test/coverband/utils/file_list_test.rb
418
+ - test/coverband/utils/gem_list_test.rb
419
+ - test/coverband/utils/lines_classifier_test.rb
420
+ - test/coverband/utils/result_test.rb
421
+ - test/coverband/utils/s3_report_test.rb
422
+ - test/coverband/utils/source_file_line_test.rb
423
+ - test/coverband/utils/source_file_test.rb
424
+ - test/dog.rb
381
425
  - test/fake_app/basic_rack.rb
382
426
  - test/fixtures/app/controllers/sample_controller.rb
383
427
  - test/fixtures/app/models/user.rb
@@ -386,6 +430,9 @@ test_files:
386
430
  - test/fixtures/skipped.rb
387
431
  - test/fixtures/skipped_and_executed.rb
388
432
  - test/fixtures/utf-8.rb
433
+ - test/integration/full_stack_test.rb
434
+ - test/integration/rails_full_stack_test.rb
435
+ - test/integration/rails_gems_full_stack_test.rb
389
436
  - test/rails4_dummy/app/controllers/dummy_controller.rb
390
437
  - test/rails4_dummy/config.ru
391
438
  - test/rails4_dummy/config/application.rb
@@ -402,31 +449,3 @@ test_files:
402
449
  - test/rails5_dummy/config/routes.rb
403
450
  - test/rails_test_helper.rb
404
451
  - test/test_helper.rb
405
- - test/unit/adapters_base_test.rb
406
- - test/unit/adapters_file_store_test.rb
407
- - test/unit/adapters_redis_store_test.rb
408
- - test/unit/at_exit_test.rb
409
- - test/unit/background_test.rb
410
- - test/unit/collectors_coverage_test.rb
411
- - test/unit/configuration_test.rb
412
- - test/unit/coverband_test.rb
413
- - test/unit/dog.rb
414
- - test/unit/full_stack_test.rb
415
- - test/unit/middleware_test.rb
416
- - test/unit/rack_server_checkout_test.rb
417
- - test/unit/rails_full_stack_test.rb
418
- - test/unit/rails_gems_full_stack_test.rb
419
- - test/unit/reports_base_test.rb
420
- - test/unit/reports_console_test.rb
421
- - test/unit/reports_html_test.rb
422
- - test/unit/reports_web_test.rb
423
- - test/unit/resque_worker_test.rb
424
- - test/unit/test_resque_job.rb
425
- - test/unit/utils/file_groups_test.rb
426
- - test/unit/utils/file_list_test.rb
427
- - test/unit/utils/gem_list_test.rb
428
- - test/unit/utils/lines_classifier_test.rb
429
- - test/unit/utils/result_test.rb
430
- - test/unit/utils/s3_report_test.rb
431
- - test/unit/utils/source_file_line_test.rb
432
- - test/unit/utils/source_file_test.rb
@@ -1,117 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require File.expand_path('../test_helper', File.dirname(__FILE__))
4
-
5
- class ReportsBaseTest < Minitest::Test
6
- test 'filename_from_key fix filename from a key with a swappable path' do
7
- Coverband.configure do |config|
8
- config.reporter = 'std_out'
9
- config.root = '/full/remote_app/path'
10
- end
11
-
12
- key = '/app/is/a/path.rb'
13
- # the code takes config.root expands and adds a '/' for the final path in roots
14
- roots = ['/app/', '/full/remote_app/path/']
15
-
16
- expected_path = '/full/remote_app/path/is/a/path.rb'
17
- File.expects(:exist?).with(key).returns(false)
18
- File.expects(:exist?).with(expected_path).returns(true)
19
- assert_equal expected_path, Coverband::Reporters::Base.send(:filename_from_key, key, roots)
20
- end
21
-
22
- test 'filename_from_key fix filename a changing deploy path with double quotes' do
23
- Coverband.configure do |config|
24
- config.reporter = 'std_out'
25
- config.root = '/full/remote_app/path'
26
- end
27
-
28
- key = '/box/apps/app_name/releases/20140725203539/app/models/user.rb'
29
- # the code takes config.root expands and adds a '/' for the final path in roots
30
- # note to get regex to work for changing deploy directories
31
- # it must be double escaped in double quotes or use single qoutes
32
- roots = ['/box/apps/app_name/releases/\\d+/', '/full/remote_app/path/']
33
-
34
- expected_path = '/full/remote_app/path/app/models/user.rb'
35
- File.expects(:exist?).with('/box/apps/app_name/releases/\\d+/app/models/user.rb').returns(false)
36
- File.expects(:exist?).with(expected_path).returns(true)
37
- assert_equal expected_path, Coverband::Reporters::Base.send(:filename_from_key, key, roots)
38
- end
39
-
40
- test 'filename_from_key fix filename a changing deploy path with single quotes' do
41
- Coverband.configure do |config|
42
- config.reporter = 'std_out'
43
- config.root = '/full/remote_app/path'
44
- end
45
-
46
- key = '/box/apps/app_name/releases/20140725203539/app/models/user.rb'
47
- # the code takes config.root expands and adds a '/' for the final path in roots
48
- # note to get regex to work for changing deploy directories
49
- # it must be double escaped in double quotes or use single qoutes
50
- roots = ['/box/apps/app_name/releases/\d+/', '/full/remote_app/path/']
51
-
52
- expected_path = '/full/remote_app/path/app/models/user.rb'
53
- File.expects(:exist?).with('/box/apps/app_name/releases/\\d+/app/models/user.rb').returns(false)
54
- File.expects(:exist?).with(expected_path).returns(true)
55
- assert_equal expected_path, Coverband::Reporters::Base.send(:filename_from_key, key, roots)
56
- end
57
-
58
- test 'filename_from_key leave filename from a key with a local path' do
59
- Coverband.configure do |config|
60
- config.reporter = 'std_out'
61
- config.root = '/full/remote_app/path'
62
- end
63
-
64
- key = '/full/remote_app/path/is/a/path.rb'
65
- # the code takes config.root expands and adds a '/' for the final path in roots
66
- roots = ['/app/', '/full/remote_app/path/']
67
-
68
- expected_path = '/full/remote_app/path/is/a/path.rb'
69
- assert_equal expected_path, Coverband::Reporters::Base.send(:filename_from_key, key, roots)
70
- end
71
-
72
- test '#merge_arrays basic merge preserves order and counts' do
73
- first = [0, 0, 1, 0, 1]
74
- second = [nil, 0, 1, 0, 0]
75
- expects = [0, 0, 2, 0, 1]
76
-
77
- assert_equal expects, Coverband::Reporters::Base.send(:merge_arrays, first, second)
78
- end
79
-
80
- test '#merge_arrays basic merge preserves order and counts different lengths' do
81
- first = [0, 0, 1, 0, 1]
82
- second = [nil, 0, 1, 0, 0, 0, 0, 1]
83
- expects = [0, 0, 2, 0, 1, 0, 0, 1]
84
-
85
- assert_equal expects, Coverband::Reporters::Base.send(:merge_arrays, first, second)
86
- end
87
-
88
- test '#merge_arrays basic merge preserves nils' do
89
- first = [0, 1, 2, nil, nil, nil]
90
- second = [0, 1, 2, nil, 0, 1, 2]
91
- expects = [0, 2, 4, nil, 0, 1, 2]
92
-
93
- assert_equal expects, Coverband::Reporters::Base.send(:merge_arrays, first, second)
94
- end
95
-
96
- test "#get_current_scov_data_imp doesn't ignore folders with default ignore keys" do
97
- @redis = Redis.new
98
- store = Coverband::Adapters::RedisStore.new(@redis)
99
- store.clear!
100
-
101
- Coverband.configure do |config|
102
- config.reporter = 'std_out'
103
- config.ignore = %w(vendor .erb$ .slim$)
104
- config.root = '/full/remote_app/path'
105
- config.store = store
106
- end
107
-
108
- key = '/a_path/that_has_erb_in/thepath.rb'
109
- roots = ['/app/', '/full/remote_app/path/']
110
-
111
- lines_hit = [1, 3, 6]
112
- store.stubs(:coverage).returns(key => lines_hit)
113
- expected = { key => [1, 3, 6] }
114
-
115
- assert_equal expected, Coverband::Reporters::Base.send(:get_current_scov_data_imp, store, roots)
116
- end
117
- end