appmap 0.39.0 → 0.41.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -16
  3. data/CHANGELOG.md +28 -2
  4. data/CONTRIBUTING.md +22 -0
  5. data/README.md +113 -51
  6. data/Rakefile +3 -3
  7. data/lib/appmap/class_map.rb +25 -8
  8. data/lib/appmap/config.rb +48 -28
  9. data/lib/appmap/event.rb +14 -4
  10. data/lib/appmap/hook.rb +18 -3
  11. data/lib/appmap/hook/method.rb +1 -1
  12. data/lib/appmap/rails/request_handler.rb +8 -3
  13. data/lib/appmap/railtie.rb +1 -5
  14. data/lib/appmap/version.rb +1 -1
  15. data/spec/abstract_controller_base_spec.rb +2 -2
  16. data/spec/config_spec.rb +1 -0
  17. data/spec/fixtures/hook/exclude.rb +15 -0
  18. data/spec/fixtures/hook/labels.rb +6 -0
  19. data/spec/fixtures/rails5_users_app/Gemfile +2 -3
  20. data/spec/fixtures/rails5_users_app/appmap.yml +4 -1
  21. data/spec/fixtures/rails5_users_app/config/application.rb +2 -0
  22. data/spec/fixtures/rails5_users_app/docker-compose.yml +3 -0
  23. data/spec/fixtures/rails6_users_app/Gemfile +2 -3
  24. data/spec/fixtures/rails6_users_app/appmap.yml +4 -1
  25. data/spec/fixtures/rails6_users_app/config/application.rb +2 -0
  26. data/spec/fixtures/rails6_users_app/docker-compose.yml +3 -0
  27. data/spec/hook_spec.rb +41 -41
  28. data/spec/record_sql_rails_pg_spec.rb +1 -1
  29. data/spec/rspec_feature_metadata_spec.rb +1 -1
  30. data/spec/spec_helper.rb +1 -0
  31. data/test/fixtures/gem_test/appmap.yml +1 -1
  32. data/test/fixtures/gem_test/test/parser_test.rb +12 -0
  33. data/test/gem_test.rb +4 -4
  34. metadata +6 -69
  35. data/spec/abstract_controller4_base_spec.rb +0 -66
  36. data/spec/fixtures/rails4_users_app/.gitignore +0 -13
  37. data/spec/fixtures/rails4_users_app/.rbenv-gemsets +0 -2
  38. data/spec/fixtures/rails4_users_app/.ruby-version +0 -1
  39. data/spec/fixtures/rails4_users_app/Dockerfile +0 -30
  40. data/spec/fixtures/rails4_users_app/Dockerfile.pg +0 -3
  41. data/spec/fixtures/rails4_users_app/Gemfile +0 -77
  42. data/spec/fixtures/rails4_users_app/README.rdoc +0 -28
  43. data/spec/fixtures/rails4_users_app/Rakefile +0 -6
  44. data/spec/fixtures/rails4_users_app/app/assets/images/.keep +0 -0
  45. data/spec/fixtures/rails4_users_app/app/assets/javascripts/application.js +0 -16
  46. data/spec/fixtures/rails4_users_app/app/assets/stylesheets/application.css +0 -15
  47. data/spec/fixtures/rails4_users_app/app/controllers/api/users_controller.rb +0 -27
  48. data/spec/fixtures/rails4_users_app/app/controllers/application_controller.rb +0 -5
  49. data/spec/fixtures/rails4_users_app/app/controllers/concerns/.keep +0 -0
  50. data/spec/fixtures/rails4_users_app/app/controllers/health_controller.rb +0 -5
  51. data/spec/fixtures/rails4_users_app/app/controllers/users_controller.rb +0 -5
  52. data/spec/fixtures/rails4_users_app/app/helpers/application_helper.rb +0 -2
  53. data/spec/fixtures/rails4_users_app/app/mailers/.keep +0 -0
  54. data/spec/fixtures/rails4_users_app/app/models/.keep +0 -0
  55. data/spec/fixtures/rails4_users_app/app/models/concerns/.keep +0 -0
  56. data/spec/fixtures/rails4_users_app/app/models/user.rb +0 -18
  57. data/spec/fixtures/rails4_users_app/app/views/layouts/application.html.haml +0 -7
  58. data/spec/fixtures/rails4_users_app/app/views/users/index.html.haml +0 -7
  59. data/spec/fixtures/rails4_users_app/appmap.yml +0 -3
  60. data/spec/fixtures/rails4_users_app/bin/rails +0 -9
  61. data/spec/fixtures/rails4_users_app/bin/setup +0 -29
  62. data/spec/fixtures/rails4_users_app/bin/spring +0 -17
  63. data/spec/fixtures/rails4_users_app/config.ru +0 -4
  64. data/spec/fixtures/rails4_users_app/config/application.rb +0 -26
  65. data/spec/fixtures/rails4_users_app/config/boot.rb +0 -3
  66. data/spec/fixtures/rails4_users_app/config/database.yml +0 -18
  67. data/spec/fixtures/rails4_users_app/config/environment.rb +0 -5
  68. data/spec/fixtures/rails4_users_app/config/environments/development.rb +0 -41
  69. data/spec/fixtures/rails4_users_app/config/environments/production.rb +0 -79
  70. data/spec/fixtures/rails4_users_app/config/environments/test.rb +0 -42
  71. data/spec/fixtures/rails4_users_app/config/initializers/assets.rb +0 -11
  72. data/spec/fixtures/rails4_users_app/config/initializers/backtrace_silencers.rb +0 -7
  73. data/spec/fixtures/rails4_users_app/config/initializers/cookies_serializer.rb +0 -3
  74. data/spec/fixtures/rails4_users_app/config/initializers/filter_parameter_logging.rb +0 -4
  75. data/spec/fixtures/rails4_users_app/config/initializers/inflections.rb +0 -16
  76. data/spec/fixtures/rails4_users_app/config/initializers/mime_types.rb +0 -4
  77. data/spec/fixtures/rails4_users_app/config/initializers/session_store.rb +0 -3
  78. data/spec/fixtures/rails4_users_app/config/initializers/to_time_preserves_timezone.rb +0 -10
  79. data/spec/fixtures/rails4_users_app/config/initializers/wrap_parameters.rb +0 -14
  80. data/spec/fixtures/rails4_users_app/config/locales/en.yml +0 -23
  81. data/spec/fixtures/rails4_users_app/config/routes.rb +0 -12
  82. data/spec/fixtures/rails4_users_app/config/secrets.yml +0 -22
  83. data/spec/fixtures/rails4_users_app/create_app +0 -23
  84. data/spec/fixtures/rails4_users_app/db/migrate/20191127112304_create_users.rb +0 -10
  85. data/spec/fixtures/rails4_users_app/db/schema.rb +0 -26
  86. data/spec/fixtures/rails4_users_app/db/seeds.rb +0 -7
  87. data/spec/fixtures/rails4_users_app/docker-compose.yml +0 -26
  88. data/spec/fixtures/rails4_users_app/lib/assets/.keep +0 -0
  89. data/spec/fixtures/rails4_users_app/lib/tasks/.keep +0 -0
  90. data/spec/fixtures/rails4_users_app/log/.keep +0 -0
  91. data/spec/fixtures/rails4_users_app/public/404.html +0 -67
  92. data/spec/fixtures/rails4_users_app/public/422.html +0 -67
  93. data/spec/fixtures/rails4_users_app/public/500.html +0 -66
  94. data/spec/fixtures/rails4_users_app/public/favicon.ico +0 -0
  95. data/spec/fixtures/rails4_users_app/public/robots.txt +0 -5
  96. data/spec/fixtures/rails4_users_app/spec/controllers/users_controller_api_spec.rb +0 -49
  97. data/spec/fixtures/rails4_users_app/spec/rails_helper.rb +0 -95
  98. data/spec/fixtures/rails4_users_app/spec/spec_helper.rb +0 -96
  99. data/spec/fixtures/rails4_users_app/test/fixtures/users.yml +0 -9
  100. data/spec/record_sql_rails4_pg_spec.rb +0 -75
  101. data/test/fixtures/gem_test/test/to_param_test.rb +0 -14
@@ -19,6 +19,8 @@ when 'activerecord'
19
19
  require 'active_record/railtie'
20
20
  end
21
21
 
22
+ require 'appmap/railtie' if defined?(AppMap)
23
+
22
24
  # require "active_storage/engine"
23
25
  # require "action_mailer/railtie"
24
26
  # require "action_cable/engine"
@@ -19,6 +19,9 @@ services:
19
19
  environment:
20
20
  RAILS_ENV:
21
21
  ORM_MODULE:
22
+ PGHOST: pg
23
+ PGPORT: '5432'
24
+ DATABASE_URL: postgres://postgres@pg
22
25
  APPMAP:
23
26
  volumes:
24
27
  - .:/src/app
data/spec/hook_spec.rb CHANGED
@@ -61,6 +61,42 @@ describe 'AppMap class Hooking', docker: false do
61
61
  AppMap.configuration = nil
62
62
  end
63
63
 
64
+ it 'excludes named classes and methods' do
65
+ load 'spec/fixtures/hook/exclude.rb'
66
+ package = AppMap::Config::Package.build_from_path('spec/fixtures/hook/exclude.rb')
67
+ config = AppMap::Config.new('hook_spec', [ package ], %w[ExcludeTest])
68
+ AppMap.configuration = config
69
+
70
+ expect(config.never_hook?(ExcludeTest.new.method(:instance_method))).to be_truthy
71
+ expect(config.never_hook?(ExcludeTest.method(:cls_method))).to be_truthy
72
+ end
73
+
74
+ it 'parses labels from comments' do
75
+ _, tracer = invoke_test_file 'spec/fixtures/hook/labels.rb' do
76
+ ClassWithLabel.new.fn_with_label
77
+ end
78
+ class_map = AppMap.class_map(tracer.event_methods).to_yaml
79
+ expect(Diffy::Diff.new(<<~YAML, class_map).to_s).to eq('')
80
+ ---
81
+ - :name: spec/fixtures/hook/labels.rb
82
+ :type: package
83
+ :children:
84
+ - :name: ClassWithLabel
85
+ :type: class
86
+ :children:
87
+ - :name: fn_with_label
88
+ :type: function
89
+ :location: spec/fixtures/hook/labels.rb:4
90
+ :static: false
91
+ :labels:
92
+ - has-fn-label
93
+ :comment: "# @label has-fn-label\\n"
94
+ :source: |2
95
+ def fn_with_label
96
+ end
97
+ YAML
98
+ end
99
+
64
100
  it 'hooks an instance method that takes no arguments' do
65
101
  events_yaml = <<~YAML
66
102
  ---
@@ -517,24 +553,6 @@ describe 'AppMap class Hooking', docker: false do
517
553
  events_yaml = <<~YAML
518
554
  ---
519
555
  - :id: 1
520
- :event: :call
521
- :defined_class: NoToSMethod
522
- :method_id: respond_to?
523
- :path: spec/fixtures/hook/exception_method.rb
524
- :lineno: 24
525
- :static: false
526
- :parameters:
527
- - :name: :args
528
- :class: Array
529
- :value: "[:to_s]"
530
- :kind: :rest
531
- :receiver:
532
- :class: Class
533
- :value: NoToSMethod
534
- - :id: 2
535
- :event: :return
536
- :parent_id: 1
537
- - :id: 3
538
556
  :event: :call
539
557
  :defined_class: NoToSMethod
540
558
  :method_id: say_hello
@@ -545,9 +563,9 @@ describe 'AppMap class Hooking', docker: false do
545
563
  :receiver:
546
564
  :class: Class
547
565
  :value: NoToSMethod
548
- - :id: 4
566
+ - :id: 2
549
567
  :event: :return
550
- :parent_id: 3
568
+ :parent_id: 1
551
569
  :return_value:
552
570
  :class: String
553
571
  :value: hello
@@ -565,24 +583,6 @@ describe 'AppMap class Hooking', docker: false do
565
583
  events_yaml = <<~YAML
566
584
  ---
567
585
  - :id: 1
568
- :event: :call
569
- :defined_class: NoToSMethod
570
- :method_id: respond_to?
571
- :path: spec/fixtures/hook/exception_method.rb
572
- :lineno: 24
573
- :static: false
574
- :parameters:
575
- - :name: :args
576
- :class: Array
577
- :value: "[:to_s]"
578
- :kind: :rest
579
- :receiver:
580
- :class: Class
581
- :value: "*Error inspecting variable*"
582
- - :id: 2
583
- :event: :return
584
- :parent_id: 1
585
- - :id: 3
586
586
  :event: :call
587
587
  :defined_class: InspectRaises
588
588
  :method_id: say_hello
@@ -593,9 +593,9 @@ describe 'AppMap class Hooking', docker: false do
593
593
  :receiver:
594
594
  :class: Class
595
595
  :value: "*Error inspecting variable*"
596
- - :id: 4
596
+ - :id: 2
597
597
  :event: :return
598
- :parent_id: 3
598
+ :parent_id: 1
599
599
  :return_value:
600
600
  :class: String
601
601
  :value: hello
@@ -837,7 +837,7 @@ describe 'AppMap class Hooking', docker: false do
837
837
  entry = cm[1][:children][0][:children][0][:children][0]
838
838
  # Sanity check, make sure we got the right one
839
839
  expect(entry[:name]).to eq('secure_compare')
840
- expect(entry[:labels]).to eq(%w[security crypto])
840
+ expect(entry[:labels]).to eq(%w[provider.secure_compare])
841
841
  end
842
842
  end
843
843
 
@@ -5,7 +5,7 @@ describe 'SQL events' do
5
5
  around(:each) do |example|
6
6
  FileUtils.rm_rf tmpdir
7
7
  FileUtils.mkdir_p tmpdir
8
- cmd = "docker-compose run --rm -e ORM_MODULE=#{orm_module} -e APPMAP=true -v #{File.absolute_path tmpdir}:/app/tmp app ./bin/rspec spec/controllers/users_controller_api_spec.rb:#{test_line_number}"
8
+ cmd = "docker-compose run --rm -e ORM_MODULE=#{orm_module} -e RAILS_ENV=test -e APPMAP=true -v #{File.absolute_path tmpdir}:/app/tmp app ./bin/rspec spec/controllers/users_controller_api_spec.rb:#{test_line_number}"
9
9
  run_cmd cmd, chdir: fixture_dir
10
10
 
11
11
  example.run
@@ -7,7 +7,7 @@ describe 'RSpec feature and feature group metadata' do
7
7
  around(:each) do |example|
8
8
  FileUtils.rm_rf tmpdir
9
9
  FileUtils.mkdir_p tmpdir
10
- cmd = "docker-compose run --rm -e APPMAP=true -v #{File.absolute_path(tmpdir).shellescape}:/app/tmp app ./bin/rspec spec/models/user_spec.rb"
10
+ cmd = "docker-compose run --rm -e RAILS_ENV=test -e APPMAP=true -v #{File.absolute_path(tmpdir).shellescape}:/app/tmp app ./bin/rspec spec/models/user_spec.rb"
11
11
  run_cmd cmd, chdir: fixture_dir
12
12
 
13
13
  example.run
data/spec/spec_helper.rb CHANGED
@@ -3,6 +3,7 @@ require 'net/http'
3
3
  require 'json'
4
4
  require 'yaml'
5
5
  require 'English'
6
+ require 'byebug'
6
7
  require 'webdrivers/chromedriver'
7
8
 
8
9
  # Disable default initialization of AppMap
@@ -1,3 +1,3 @@
1
1
  name: gem_test
2
2
  packages:
3
- - gem: activesupport
3
+ - gem: parser
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'appmap/minitest'
5
+ require 'minitest/autorun'
6
+ require 'parser/current'
7
+
8
+ class ParserTest < ::Minitest::Test
9
+ def test_parser
10
+ Parser::CurrentRuby.parse(File.read(__FILE__))
11
+ end
12
+ end
data/test/gem_test.rb CHANGED
@@ -19,14 +19,14 @@ class MinitestTest < Minitest::Test
19
19
  end
20
20
 
21
21
  def test_record_gem
22
- perform_gem_test 'to_param' do
23
- appmap_file = 'tmp/appmap/minitest/To_param_to_param.appmap.json'
22
+ perform_gem_test 'parser' do
23
+ appmap_file = 'tmp/appmap/minitest/Parser_parser.appmap.json'
24
24
  appmap = JSON.parse(File.read(appmap_file))
25
25
  events = appmap['events']
26
26
  assert_equal 2, events.size
27
27
  assert_equal 'call', events.first['event']
28
- assert_equal 'to_param', events.first['method_id']
29
- assert_equal "#{Gem.loaded_specs['activesupport'].gem_dir}/lib/active_support/core_ext/object/to_query.rb", events.first['path']
28
+ assert_equal 'default_parser', events.first['method_id']
29
+ assert_equal "#{Gem.loaded_specs['parser'].gem_dir}/lib/parser/base.rb", events.first['path']
30
30
  assert_equal 'return', events.second['event']
31
31
  assert_equal 1, events.second['parent_id']
32
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appmap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.39.0
4
+ version: 0.41.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Gilpin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-15 00:00:00.000000000 Z
11
+ date: 2021-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -319,6 +319,7 @@ files:
319
319
  - ".rubocop.yml"
320
320
  - ".travis.yml"
321
321
  - CHANGELOG.md
322
+ - CONTRIBUTING.md
322
323
  - Dockerfile.appmap
323
324
  - Gemfile
324
325
  - LICENSE.txt
@@ -378,7 +379,6 @@ files:
378
379
  - lore/public/stylesheets/style.css
379
380
  - package-lock.json
380
381
  - package.json
381
- - spec/abstract_controller4_base_spec.rb
382
382
  - spec/abstract_controller_base_spec.rb
383
383
  - spec/class_map_spec.rb
384
384
  - spec/config_spec.rb
@@ -386,7 +386,9 @@ files:
386
386
  - spec/fixtures/hook/compare.rb
387
387
  - spec/fixtures/hook/constructor.rb
388
388
  - spec/fixtures/hook/exception_method.rb
389
+ - spec/fixtures/hook/exclude.rb
389
390
  - spec/fixtures/hook/instance_method.rb
391
+ - spec/fixtures/hook/labels.rb
390
392
  - spec/fixtures/hook/singleton_method.rb
391
393
  - spec/fixtures/rack_users_app/.dockerignore
392
394
  - spec/fixtures/rack_users_app/.gitignore
@@ -396,70 +398,6 @@ files:
396
398
  - spec/fixtures/rack_users_app/config.ru
397
399
  - spec/fixtures/rack_users_app/docker-compose.yml
398
400
  - spec/fixtures/rack_users_app/lib/app.rb
399
- - spec/fixtures/rails4_users_app/.gitignore
400
- - spec/fixtures/rails4_users_app/.rbenv-gemsets
401
- - spec/fixtures/rails4_users_app/.ruby-version
402
- - spec/fixtures/rails4_users_app/Dockerfile
403
- - spec/fixtures/rails4_users_app/Dockerfile.pg
404
- - spec/fixtures/rails4_users_app/Gemfile
405
- - spec/fixtures/rails4_users_app/README.rdoc
406
- - spec/fixtures/rails4_users_app/Rakefile
407
- - spec/fixtures/rails4_users_app/app/assets/images/.keep
408
- - spec/fixtures/rails4_users_app/app/assets/javascripts/application.js
409
- - spec/fixtures/rails4_users_app/app/assets/stylesheets/application.css
410
- - spec/fixtures/rails4_users_app/app/controllers/api/users_controller.rb
411
- - spec/fixtures/rails4_users_app/app/controllers/application_controller.rb
412
- - spec/fixtures/rails4_users_app/app/controllers/concerns/.keep
413
- - spec/fixtures/rails4_users_app/app/controllers/health_controller.rb
414
- - spec/fixtures/rails4_users_app/app/controllers/users_controller.rb
415
- - spec/fixtures/rails4_users_app/app/helpers/application_helper.rb
416
- - spec/fixtures/rails4_users_app/app/mailers/.keep
417
- - spec/fixtures/rails4_users_app/app/models/.keep
418
- - spec/fixtures/rails4_users_app/app/models/concerns/.keep
419
- - spec/fixtures/rails4_users_app/app/models/user.rb
420
- - spec/fixtures/rails4_users_app/app/views/layouts/application.html.haml
421
- - spec/fixtures/rails4_users_app/app/views/users/index.html.haml
422
- - spec/fixtures/rails4_users_app/appmap.yml
423
- - spec/fixtures/rails4_users_app/bin/rails
424
- - spec/fixtures/rails4_users_app/bin/setup
425
- - spec/fixtures/rails4_users_app/bin/spring
426
- - spec/fixtures/rails4_users_app/config.ru
427
- - spec/fixtures/rails4_users_app/config/application.rb
428
- - spec/fixtures/rails4_users_app/config/boot.rb
429
- - spec/fixtures/rails4_users_app/config/database.yml
430
- - spec/fixtures/rails4_users_app/config/environment.rb
431
- - spec/fixtures/rails4_users_app/config/environments/development.rb
432
- - spec/fixtures/rails4_users_app/config/environments/production.rb
433
- - spec/fixtures/rails4_users_app/config/environments/test.rb
434
- - spec/fixtures/rails4_users_app/config/initializers/assets.rb
435
- - spec/fixtures/rails4_users_app/config/initializers/backtrace_silencers.rb
436
- - spec/fixtures/rails4_users_app/config/initializers/cookies_serializer.rb
437
- - spec/fixtures/rails4_users_app/config/initializers/filter_parameter_logging.rb
438
- - spec/fixtures/rails4_users_app/config/initializers/inflections.rb
439
- - spec/fixtures/rails4_users_app/config/initializers/mime_types.rb
440
- - spec/fixtures/rails4_users_app/config/initializers/session_store.rb
441
- - spec/fixtures/rails4_users_app/config/initializers/to_time_preserves_timezone.rb
442
- - spec/fixtures/rails4_users_app/config/initializers/wrap_parameters.rb
443
- - spec/fixtures/rails4_users_app/config/locales/en.yml
444
- - spec/fixtures/rails4_users_app/config/routes.rb
445
- - spec/fixtures/rails4_users_app/config/secrets.yml
446
- - spec/fixtures/rails4_users_app/create_app
447
- - spec/fixtures/rails4_users_app/db/migrate/20191127112304_create_users.rb
448
- - spec/fixtures/rails4_users_app/db/schema.rb
449
- - spec/fixtures/rails4_users_app/db/seeds.rb
450
- - spec/fixtures/rails4_users_app/docker-compose.yml
451
- - spec/fixtures/rails4_users_app/lib/assets/.keep
452
- - spec/fixtures/rails4_users_app/lib/tasks/.keep
453
- - spec/fixtures/rails4_users_app/log/.keep
454
- - spec/fixtures/rails4_users_app/public/404.html
455
- - spec/fixtures/rails4_users_app/public/422.html
456
- - spec/fixtures/rails4_users_app/public/500.html
457
- - spec/fixtures/rails4_users_app/public/favicon.ico
458
- - spec/fixtures/rails4_users_app/public/robots.txt
459
- - spec/fixtures/rails4_users_app/spec/controllers/users_controller_api_spec.rb
460
- - spec/fixtures/rails4_users_app/spec/rails_helper.rb
461
- - spec/fixtures/rails4_users_app/spec/spec_helper.rb
462
- - spec/fixtures/rails4_users_app/test/fixtures/users.yml
463
401
  - spec/fixtures/rails5_users_app/.dockerignore
464
402
  - spec/fixtures/rails5_users_app/.gitignore
465
403
  - spec/fixtures/rails5_users_app/.rspec
@@ -608,7 +546,6 @@ files:
608
546
  - spec/open_spec.rb
609
547
  - spec/rails_spec_helper.rb
610
548
  - spec/railtie_spec.rb
611
- - spec/record_sql_rails4_pg_spec.rb
612
549
  - spec/record_sql_rails_pg_spec.rb
613
550
  - spec/remote_recording_spec.rb
614
551
  - spec/rspec_feature_metadata_spec.rb
@@ -636,7 +573,7 @@ files:
636
573
  - test/fixtures/cucumber_recorder/lib/hello.rb
637
574
  - test/fixtures/gem_test/Gemfile
638
575
  - test/fixtures/gem_test/appmap.yml
639
- - test/fixtures/gem_test/test/to_param_test.rb
576
+ - test/fixtures/gem_test/test/parser_test.rb
640
577
  - test/fixtures/minitest_recorder/Gemfile
641
578
  - test/fixtures/minitest_recorder/appmap.yml
642
579
  - test/fixtures/minitest_recorder/lib/hello.rb
@@ -1,66 +0,0 @@
1
- require 'rails_spec_helper'
2
-
3
- describe 'AbstractControllerBase' do
4
- include_context 'Rails app pg database', 'spec/fixtures/rails4_users_app' do
5
- around(:each) do |example|
6
- FileUtils.rm_rf tmpdir
7
- FileUtils.mkdir_p tmpdir
8
- cmd = "docker-compose run --rm -e APPMAP=true -v #{File.absolute_path tmpdir}:/app/tmp app ./bin/rspec spec/controllers/users_controller_api_spec.rb:8"
9
- run_cmd cmd, chdir: fixture_dir
10
-
11
- example.run
12
- end
13
-
14
- let(:tmpdir) { 'tmp/spec/AbstractControllerBase' }
15
- let(:appmap_json) { File.join(tmpdir, 'appmap/rspec/Api_UsersController_POST_api_users_with_required_parameters_creates_a_user.appmap.json') }
16
-
17
- describe 'testing with rspec' do
18
- it 'Message fields are recorded in the appmap' do
19
- expect(File).to exist(appmap_json)
20
- appmap = JSON.parse(File.read(appmap_json)).to_yaml
21
-
22
- expect(appmap).to include(<<-MESSAGE.strip)
23
- message:
24
- - name: login
25
- class: String
26
- value: alice
27
- object_id:
28
- MESSAGE
29
-
30
- expect(appmap).to include(<<-MESSAGE.strip)
31
- - name: password
32
- class: String
33
- value: "[FILTERED]"
34
- object_id:
35
- MESSAGE
36
-
37
- expect(appmap).to include(<<-SERVER_REQUEST.strip)
38
- http_server_request:
39
- request_method: POST
40
- path_info: "/api/users"
41
- SERVER_REQUEST
42
- end
43
- it 'Properly captures method parameters in the appmap' do
44
- expect(File).to exist(appmap_json)
45
- appmap = JSON.parse(File.read(appmap_json)).to_yaml
46
-
47
- expect(appmap).to match(<<-CREATE_CALL.strip)
48
- event: call
49
- thread_id: .*
50
- defined_class: Api::UsersController
51
- method_id: build_user
52
- path: app/controllers/api/users_controller.rb
53
- lineno: 23
54
- static: false
55
- parameters:
56
- - name: params
57
- class: Hash
58
- object_id: .*
59
- value: '{"login"=>"alice"}'
60
- kind: req
61
- receiver:
62
- CREATE_CALL
63
- end
64
- end
65
- end
66
- end
@@ -1,13 +0,0 @@
1
- # See https://help.github.com/articles/ignoring-files for more about ignoring files.
2
- #
3
- # If you find yourself ignoring temporary files generated by your text editor
4
- # or operating system, you probably want to add a global ignore instead:
5
- # git config --global core.excludesfile '~/.gitignore_global'
6
-
7
- # Ignore bundler config.
8
- /.bundle
9
-
10
- # Ignore all logfiles and tempfiles.
11
- /log/*
12
- !/log/.keep
13
- /tmp
@@ -1,2 +0,0 @@
1
- rails4_users_app
2
-
@@ -1 +0,0 @@
1
- 2.5.1
@@ -1,30 +0,0 @@
1
- ARG GEM_VERSION
2
- ARG RUBY_VERSION
3
-
4
- FROM appmap:${GEM_VERSION} as appmap
5
-
6
- FROM ruby:${RUBY_VERSION}
7
- RUN apt-get update && apt-get install -y vim less
8
- RUN apt-get install -y postgresql-client
9
-
10
- RUN mkdir /app
11
- WORKDIR /app
12
-
13
- RUN gem install -v '~> 1.17' -N bundler
14
-
15
- COPY Gemfile .
16
-
17
- RUN bundle
18
- RUN bundle binstubs --force \
19
- bundler rake rspec-core
20
-
21
- COPY . .
22
-
23
- COPY --from=appmap /pkg/appmap.gem /tmp/
24
- RUN gem install /tmp/appmap.gem && \
25
- bundle update --local appmap && \
26
- bundle binstubs appmap --force
27
-
28
- EXPOSE 3000
29
-
30
- HEALTHCHECK --interval=1s --retries=10 CMD curl --fail http://localhost:3000/health || exit 1