appmap 0.39.0 → 0.41.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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