appmap 0.55.0 → 0.59.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
  SHA256:
3
- metadata.gz: dfd518bd44a86f1270fe90e70c397e213763dd582260ace7c5a01898b94030d2
4
- data.tar.gz: cf449bff5700a1bfd5efabda40ccd59c5281d595aa34ca551d6a3b4b1f89f5f8
3
+ metadata.gz: b0592a1e7b252df037c7e06986095c4e7f5feba8011a317e54edda181c53aed7
4
+ data.tar.gz: 44d0c65506400e36016dd140e7f4a109f6495dd2ae6bdd893e038bd8c1504d95
5
5
  SHA512:
6
- metadata.gz: 1824e49817ccceca6571fb2cb6f4a3033fb4873bb184577ec3989af3d74d09aecbf7685f9ce9f7efeb2a43e811f9477b0cfc5c6f6778ba3ec8d141c37560112c
7
- data.tar.gz: da796d7072dab9b505f6fe1220ae3987e0577be458dfb1253b3d4b860df41d7a4856640629dd300ebcb6588f350f4f55af2b867bf730d0a65e90788c0f2eeb0d
6
+ metadata.gz: cc7057bf09581066d6ef84f2f73b17ea9a3088ec6e19dfd90f2983a15706f98de6ca1e20ccfc949aad334ccfa7f0346474bd53899eefb9a44d871618c7c17995
7
+ data.tar.gz: 4c86d5a8782501a8924f286e41334b79473d87990e7a731ee7832288ae81ad4db112d6826313dfae99cb1a5b418e77fbea63a3a2888ec9d09fffbbd98d0c7e80
data/CHANGELOG.md CHANGED
@@ -1,3 +1,38 @@
1
+ # [0.59.0](https://github.com/applandinc/appmap-ruby/compare/v0.58.0...v0.59.0) (2021-07-07)
2
+
3
+
4
+ ### Features
5
+
6
+ * define commands as objects ([1b43203](https://github.com/applandinc/appmap-ruby/commit/1b432039040277e1b5349cc2f75aa436238ea873))
7
+
8
+ # [0.58.0](https://github.com/applandinc/appmap-ruby/compare/v0.57.1...v0.58.0) (2021-07-06)
9
+
10
+
11
+ ### Features
12
+
13
+ * Add `test_commands` sections to `appmap-agent-status` executable ([4cd8fe5](https://github.com/applandinc/appmap-ruby/commit/4cd8fe58acb4af72b7818db96de9e479562b9ea0))
14
+
15
+ ## [0.57.1](https://github.com/applandinc/appmap-ruby/compare/v0.57.0...v0.57.1) (2021-07-02)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * rename agentVersionPorject to agentVersion ([905fc5d](https://github.com/applandinc/appmap-ruby/commit/905fc5dd643411deb94f8a1087bcdb3a562d218a))
21
+
22
+ # [0.57.0](https://github.com/applandinc/appmap-ruby/compare/v0.56.0...v0.57.0) (2021-06-29)
23
+
24
+
25
+ ### Features
26
+
27
+ * Update init command to return JSON ([1f93e89](https://github.com/applandinc/appmap-ruby/commit/1f93e8909684e1018f513d69adfde2a5d0bf6bc9))
28
+
29
+ # [0.56.0](https://github.com/applandinc/appmap-ruby/compare/v0.55.0...v0.56.0) (2021-06-28)
30
+
31
+
32
+ ### Features
33
+
34
+ * add appmap-agent-status executable with config/project properties ([043f845](https://github.com/applandinc/appmap-ruby/commit/043f8453a2533a6e172d1cd23fcde04f19e73173))
35
+
1
36
  # [0.55.0](https://github.com/applandinc/appmap-ruby/compare/v0.54.4...v0.55.0) (2021-06-28)
2
37
 
3
38
 
@@ -5,10 +5,10 @@ require 'optparse'
5
5
  require 'appmap'
6
6
  require 'appmap/command/agent_setup/init'
7
7
 
8
- @options = {:config_file => AppMap::DEFAULT_CONFIG_FILE_PATH}
8
+ @options = { config_file: AppMap::DEFAULT_CONFIG_FILE_PATH }
9
9
 
10
10
  OptionParser.new do |parser|
11
- parser.banner = 'Usage: bundle exec exe/appmap-agent-init [options]'
11
+ parser.banner = 'Usage: appmap-agent-init [options]'
12
12
 
13
13
  description = "AppMap configuration file path (default: #{AppMap::DEFAULT_CONFIG_FILE_PATH})"
14
14
  parser.on('-c', '--config=FILEPATH', description) do |filepath|
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'optparse'
5
+ require 'appmap'
6
+ require 'appmap/command/agent_setup/status'
7
+
8
+ @options = { config_file: AppMap::DEFAULT_CONFIG_FILE_PATH }
9
+
10
+ OptionParser.new do |parser|
11
+ parser.banner = 'Usage: appmap-agent-status [options]'
12
+
13
+ description = "AppMap configuration file path (default: #{AppMap::DEFAULT_CONFIG_FILE_PATH})"
14
+ parser.on('-c', '--config=FILEPATH', description) do |filepath|
15
+ @options[:config_file] = filepath
16
+ end
17
+ end.parse!
18
+
19
+ AppMap::Command::AgentSetup::Status.new(@options[:config_file]).perform
@@ -1,8 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'fileutils'
3
+ require 'json'
4
4
  require 'appmap/service/guesser'
5
- require 'appmap/util'
6
5
 
7
6
  module AppMap
8
7
  module Command
@@ -11,32 +10,19 @@ module AppMap
11
10
 
12
11
  class Init < InitStruct
13
12
  def perform
14
- if File.exist?(config_file)
15
- puts AppMap::Util.color(%(The AppMap config file #{config_file} already exists.), :magenta)
16
- return
17
- end
18
-
19
- ensure_directory_exists
20
-
21
13
  config = {
22
14
  'name' => Service::Guesser.guess_name,
23
15
  'packages' => Service::Guesser.guess_paths.map { |path| { 'path' => path } }
24
16
  }
25
- content = YAML.dump(config).gsub("---\n", '')
26
17
 
27
- File.write(config_file, content)
28
- puts AppMap::Util.color(
29
- %(The following AppMap config file #{config_file} has been created:),
30
- :green
31
- )
32
- puts content
33
- end
34
-
35
- private
18
+ result = {
19
+ configuration: {
20
+ filename: config_file,
21
+ contents: YAML.dump(config)
22
+ }
23
+ }
36
24
 
37
- def ensure_directory_exists
38
- dirname = File.dirname(config_file)
39
- FileUtils.mkdir_p(dirname) unless File.directory?(dirname)
25
+ puts JSON.pretty_generate(result)
40
26
  end
41
27
  end
42
28
  end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'json'
4
+ require 'appmap/service/config_analyzer'
5
+ require 'appmap/service/integration_test_path_finder'
6
+ require 'appmap/service/test_command_provider'
7
+
8
+ module AppMap
9
+ module Command
10
+ module AgentSetup
11
+ StatusStruct = Struct.new(:config_file)
12
+
13
+ class Status < StatusStruct
14
+ def perform
15
+ status = {
16
+ test_commands: Service::TestCommandProvider.all,
17
+ properties: {
18
+ config: {
19
+ app: config_analyzer.app_name,
20
+ present: config_analyzer.present?,
21
+ valid: config_analyzer.valid?
22
+ },
23
+ project: {
24
+ agentVersion: AppMap::VERSION,
25
+ language: 'ruby',
26
+ remoteRecordingCapable: Gem.loaded_specs.has_key?('rails'),
27
+ integrationTests: Service::IntegrationTestPathFinder.count_paths > 0
28
+ }
29
+ }
30
+ }
31
+
32
+ puts JSON.pretty_generate(status)
33
+ end
34
+
35
+ private
36
+
37
+ def config_analyzer
38
+ @config_analyzer ||= Service::ConfigAnalyzer.new(config_file)
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
data/lib/appmap/config.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'set'
3
4
  require 'yaml'
4
5
  require 'appmap/util'
5
6
  require 'appmap/handler/net_http'
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppMap
4
+ module Service
5
+ class ConfigAnalyzer
6
+ attr_reader :config_error
7
+
8
+ def initialize(config_file)
9
+ @config_file = config_file
10
+ @config = load_config
11
+ end
12
+
13
+ def app_name
14
+ @config.to_h[:name] if present?
15
+ end
16
+
17
+ def present?
18
+ File.exist?(@config_file)
19
+ end
20
+
21
+ def valid?
22
+ present? && @config.to_h.key?(:name) && @config.to_h.key?(:packages)
23
+ end
24
+
25
+ private
26
+
27
+ def load_config
28
+ AppMap::Config.load_from_file @config_file if present?
29
+ rescue
30
+ nil
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'appmap/service/test_framework_detector'
4
+
5
+ module AppMap
6
+ module Service
7
+ class IntegrationTestPathFinder
8
+ class << self
9
+ def find
10
+ @paths ||= begin
11
+ paths = { rspec: [], minitest: [], cucumber: [] }
12
+ paths[:rspec] = find_rspec_paths if TestFrameworkDetector.rspec_present?
13
+ paths[:minitest] = find_minitest_paths if TestFrameworkDetector.minitest_present?
14
+ paths[:cucumber] = find_cucumber_paths if TestFrameworkDetector.cucumber_present?
15
+ paths
16
+ end
17
+ end
18
+
19
+ def count_paths
20
+ find.flatten(2).length - 3
21
+ end
22
+
23
+ private
24
+
25
+ def find_rspec_paths
26
+ find_non_empty_paths(%w[spec/controllers spec/requests spec/integration spec/api spec/features spec/system])
27
+ end
28
+
29
+
30
+ def find_minitest_paths
31
+ find_non_empty_paths(%w[test/controllers test/integration])
32
+ end
33
+
34
+ def find_cucumber_paths
35
+ find_non_empty_paths(%w[features])
36
+ end
37
+
38
+ def find_non_empty_paths(paths)
39
+ paths.select { |path| Dir.exist?(path) && !Dir.empty?(path) }
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'appmap/service/test_framework_detector'
4
+ require 'appmap/service/integration_test_path_finder'
5
+
6
+ module AppMap
7
+ module Service
8
+ class TestCommandProvider
9
+ class << self
10
+ def all
11
+ commands = []
12
+
13
+ if TestFrameworkDetector.rspec_present? && !integration_test_paths[:rspec].empty?
14
+ commands << {
15
+ framework: :rspec,
16
+ command: {
17
+ program: 'bundle',
18
+ args: %w[exec rspec] + integration_test_paths[:rspec].map { |path| "./#{path}" },
19
+ environment: {
20
+ APPMAP: 'true'
21
+ }
22
+ }
23
+ }
24
+ end
25
+
26
+ if TestFrameworkDetector.minitest_present? && !integration_test_paths[:minitest].empty?
27
+ commands += minitest_commands
28
+ end
29
+ if TestFrameworkDetector.cucumber_present? && !integration_test_paths[:cucumber].empty?
30
+ commands << {
31
+ framework: :cucumber,
32
+ command: {
33
+ program: 'bundle',
34
+ args: %w[exec cucumber],
35
+ environment: { APPMAP: 'true' }
36
+ }
37
+ }
38
+ end
39
+
40
+ commands
41
+ end
42
+
43
+ private
44
+
45
+ def minitest_commands
46
+ if Gem.loaded_specs.has_key?('rails')
47
+ [
48
+ {
49
+ framework: :minitest,
50
+ command: {
51
+ program: 'bundle',
52
+ args: %w[exec rails test] + integration_test_paths[:minitest].map { |path| "./#{path}" },
53
+ environment: { APPMAP: 'true' }
54
+ }
55
+ }
56
+ ]
57
+ else
58
+ integration_test_paths[:minitest].map do |path|
59
+ {
60
+ framework: :minitest,
61
+ command: {
62
+ program: 'bundle',
63
+ args: ['exec', 'ruby', "./#{path}"],
64
+ environment: { APPMAP: 'true' }
65
+ }
66
+ }
67
+ end
68
+ end
69
+ end
70
+
71
+ def integration_test_paths
72
+ @paths ||= Service::IntegrationTestPathFinder.find
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppMap
4
+ module Service
5
+ class TestFrameworkDetector
6
+ class << self
7
+ def rspec_present?
8
+ Gem.loaded_specs.has_key?('rspec-core')
9
+ end
10
+
11
+ def minitest_present?
12
+ Gem.loaded_specs.has_key?('minitest')
13
+ end
14
+
15
+ def cucumber_present?
16
+ Gem.loaded_specs.has_key?('cucumber')
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -3,7 +3,7 @@
3
3
  module AppMap
4
4
  URL = 'https://github.com/applandinc/appmap-ruby'
5
5
 
6
- VERSION = '0.55.0'
6
+ VERSION = '0.59.0'
7
7
 
8
8
  APPMAP_FORMAT_VERSION = '1.5.1'
9
9
 
@@ -0,0 +1 @@
1
+ name: app
@@ -0,0 +1,2 @@
1
+ name: -123- %
2
+ packages: ~{}~ ''
@@ -0,0 +1,3 @@
1
+ name: appmap
2
+ packages:
3
+ - path: app/models
@@ -0,0 +1,10 @@
1
+ # minitest_calc_test_unit_format_spec.rb
2
+
3
+ require "minitest/autorun"
4
+
5
+ class FunctionalCalcTest < Minitest::Test
6
+ def test_add
7
+ puts 'functional'
8
+ assert_equal 2 + 2, 4
9
+ end
10
+ end
@@ -0,0 +1,12 @@
1
+ # minitest_calc_test_unit_format_spec.rb
2
+
3
+ require "minitest/autorun"
4
+
5
+ class IntegrationCalcTest < Minitest::Test
6
+ class CalcTest < Minitest::Test
7
+ def test_add
8
+ puts 'integration'
9
+ assert_equal 2 + 2, 4
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require 'appmap/service/config_analyzer'
5
+
6
+ describe AppMap::Service::ConfigAnalyzer do
7
+ subject { described_class.new(config_file) }
8
+
9
+ context 'with non-existing config' do
10
+ let(:config_file) { 'spec/fixtures/config/non_existing_config.yml'}
11
+
12
+ describe '.app_name' do
13
+ it 'returns nil' do
14
+ expect(subject.app_name).to be_nil
15
+ end
16
+ end
17
+
18
+ describe '.is_valid?' do
19
+ it 'returns false' do
20
+ expect(subject.valid?).to be_falsey
21
+ end
22
+ end
23
+
24
+ describe '.is_present?' do
25
+ it 'returns false' do
26
+ expect(subject.present?).to be_falsey
27
+ end
28
+ end
29
+ end
30
+
31
+ context 'with valid config' do
32
+ let(:config_file) { 'spec/fixtures/config/valid_config.yml'}
33
+
34
+ describe '.app_name' do
35
+ it 'returns app name value from config' do
36
+ expect(subject.app_name).to eq('appmap')
37
+ end
38
+ end
39
+
40
+ describe '.is_valid?' do
41
+ it 'returns true' do
42
+ expect(subject.valid?).to be_truthy
43
+ end
44
+ end
45
+
46
+ describe '.is_present?' do
47
+ it 'returns true' do
48
+ expect(subject.present?).to be_truthy
49
+ end
50
+ end
51
+ end
52
+
53
+ context 'with invalid YAML config' do
54
+ let(:config_file) { 'spec/fixtures/config/invalid_config.yml'}
55
+
56
+ describe '.app_name' do
57
+ it 'returns app name value from config' do
58
+ expect(subject.app_name).to be_nil
59
+ end
60
+ end
61
+
62
+ describe '.is_valid?' do
63
+ it 'returns false' do
64
+ expect(subject.valid?).to be_falsey
65
+ end
66
+ end
67
+
68
+ describe '.is_present?' do
69
+ it 'return true' do
70
+ expect(subject.present?).to be_truthy
71
+ end
72
+ end
73
+ end
74
+
75
+ context 'with incomplete config' do
76
+ let(:config_file) { 'spec/fixtures/config/incomplete_config.yml'}
77
+
78
+ describe '.app_name' do
79
+ it 'returns nil' do
80
+ expect(subject.app_name).to eq('app')
81
+ end
82
+ end
83
+
84
+ describe '.is_valid?' do
85
+ it 'guesses paths and returns true ' do
86
+ expect(subject.valid?).to be_truthy
87
+ end
88
+ end
89
+
90
+ describe '.is_present?' do
91
+ it 'returns true' do
92
+ expect(subject.present?).to be_truthy
93
+ end
94
+ end
95
+ end
96
+ end
@@ -5,8 +5,8 @@ require 'test_helper'
5
5
 
6
6
  class AgentSetupInitTest < Minitest::Test
7
7
  CONFIG_FILENAME = '123.yml'
8
- SUBFOLDER_CONFIG_FILEPATH = 'conf/123.yml'
9
- EXPECTED_CONFIG_CONTENT = %(name: appmap-ruby
8
+ EXPECTED_CONFIG_CONTENT = %(---
9
+ name: appmap-ruby
10
10
  packages:
11
11
  - path: lib
12
12
  )
@@ -14,24 +14,24 @@ packages:
14
14
  def test_init_when_config_exists
15
15
  output = `./exe/appmap-agent-init`
16
16
  assert_equal 0, $CHILD_STATUS.exitstatus
17
- assert_includes output, 'The AppMap config file appmap.yml already exists.'
17
+ expected = JSON.pretty_generate({
18
+ configuration: {
19
+ filename: 'appmap.yml',
20
+ contents: EXPECTED_CONFIG_CONTENT
21
+ }
22
+ })
23
+ assert_equal expected, output.strip
18
24
  end
19
25
 
20
26
  def test_init_with_custom_config_filename
21
27
  output = `./exe/appmap-agent-init -c #{CONFIG_FILENAME}`
22
28
  assert_equal 0, $CHILD_STATUS.exitstatus
23
- assert_includes output, "The following AppMap config file #{CONFIG_FILENAME} has been created:"
24
- assert_equal EXPECTED_CONFIG_CONTENT, File.read(CONFIG_FILENAME)
25
- ensure
26
- File.delete(CONFIG_FILENAME) if File.exist?(CONFIG_FILENAME)
27
- end
28
-
29
- def test_init_with_custom_config_file_in_subfolder
30
- output = `./exe/appmap-agent-init --config=#{SUBFOLDER_CONFIG_FILEPATH}`
31
- assert_equal 0, $CHILD_STATUS.exitstatus
32
- assert_includes output, "The following AppMap config file #{SUBFOLDER_CONFIG_FILEPATH} has been created:"
33
- assert_equal EXPECTED_CONFIG_CONTENT, File.read(SUBFOLDER_CONFIG_FILEPATH)
34
- ensure
35
- File.delete(SUBFOLDER_CONFIG_FILEPATH) if File.exist?(SUBFOLDER_CONFIG_FILEPATH)
29
+ expected = JSON.pretty_generate({
30
+ configuration: {
31
+ filename: CONFIG_FILENAME,
32
+ contents: EXPECTED_CONFIG_CONTENT
33
+ }
34
+ })
35
+ assert_equal expected, output.strip
36
36
  end
37
37
  end
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'test_helper'
5
+
6
+ class AgentSetupInitTest < Minitest::Test
7
+ def test_status_gem
8
+ output = `./exe/appmap-agent-status`
9
+ assert_equal 0, $CHILD_STATUS.exitstatus
10
+ expected = {
11
+ test_commands: [],
12
+ properties: {
13
+ config: {
14
+ app: 'AppMap Rubygem',
15
+ present: true,
16
+ valid: true
17
+ },
18
+ project: {
19
+ agentVersion: AppMap::VERSION,
20
+ language: 'ruby',
21
+ remoteRecordingCapable: false,
22
+ integrationTests: false
23
+ }
24
+ }
25
+ }
26
+ assert_equal JSON.pretty_generate(expected), output.strip
27
+ end
28
+
29
+ def test_status_rails_app
30
+ output = `cd spec/fixtures/rails6_users_app && bundle exec ../../../exe/appmap-agent-status`
31
+ assert_equal 0, $CHILD_STATUS.exitstatus
32
+ expected = {
33
+ test_commands: [
34
+ {
35
+ framework: :rspec,
36
+ command: {
37
+ program: 'bundle',
38
+ args: %w[exec rspec ./spec/controllers],
39
+ environment: {
40
+ APPMAP: 'true'
41
+ }
42
+ }
43
+ },
44
+ {
45
+ framework: :minitest,
46
+ command: {
47
+ program: 'bundle',
48
+ args: %w[exec ruby ./test/controllers],
49
+ environment: {
50
+ APPMAP: 'true'
51
+ }
52
+ }
53
+ },
54
+ {
55
+ framework: :minitest,
56
+ command: {
57
+ program: 'bundle',
58
+ args: %w[exec ruby ./test/integration],
59
+ environment: {
60
+ APPMAP: 'true'
61
+ }
62
+ }
63
+ }
64
+ ],
65
+ properties: {
66
+ config: {
67
+ app: nil,
68
+ present: true,
69
+ valid: false
70
+ },
71
+ project: {
72
+ agentVersion: AppMap::VERSION,
73
+ language: 'ruby',
74
+ remoteRecordingCapable: false,
75
+ integrationTests: true
76
+ }
77
+ }
78
+ }
79
+ assert_equal JSON.pretty_generate(expected), output.strip
80
+ end
81
+ 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.55.0
4
+ version: 0.59.0
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-06-28 00:00:00.000000000 Z
11
+ date: 2021-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -295,6 +295,7 @@ email:
295
295
  - kgilpin@gmail.com
296
296
  executables:
297
297
  - appmap-agent-init
298
+ - appmap-agent-status
298
299
  - appmap-inspect
299
300
  extensions:
300
301
  - ext/appmap/extconf.rb
@@ -324,6 +325,7 @@ files:
324
325
  - examples/mock_webapp/lib/mock_webapp/request.rb
325
326
  - examples/mock_webapp/lib/mock_webapp/user.rb
326
327
  - exe/appmap-agent-init
328
+ - exe/appmap-agent-status
327
329
  - exe/appmap-inspect
328
330
  - ext/appmap/appmap.c
329
331
  - ext/appmap/extconf.rb
@@ -331,6 +333,7 @@ files:
331
333
  - lib/appmap/agent.rb
332
334
  - lib/appmap/class_map.rb
333
335
  - lib/appmap/command/agent_setup/init.rb
336
+ - lib/appmap/command/agent_setup/status.rb
334
337
  - lib/appmap/command/inspect.rb
335
338
  - lib/appmap/command_error.rb
336
339
  - lib/appmap/config.rb
@@ -351,7 +354,11 @@ files:
351
354
  - lib/appmap/railtie.rb
352
355
  - lib/appmap/record.rb
353
356
  - lib/appmap/rspec.rb
357
+ - lib/appmap/service/config_analyzer.rb
354
358
  - lib/appmap/service/guesser.rb
359
+ - lib/appmap/service/integration_test_path_finder.rb
360
+ - lib/appmap/service/test_command_provider.rb
361
+ - lib/appmap/service/test_framework_detector.rb
355
362
  - lib/appmap/swagger.rb
356
363
  - lib/appmap/swagger/configuration.rb
357
364
  - lib/appmap/swagger/markdown_descriptions.rb
@@ -364,6 +371,9 @@ files:
364
371
  - release.sh
365
372
  - spec/class_map_spec.rb
366
373
  - spec/config_spec.rb
374
+ - spec/fixtures/config/incomplete_config.yml
375
+ - spec/fixtures/config/invalid_config.yml
376
+ - spec/fixtures/config/valid_config.yml
367
377
  - spec/fixtures/hook/.gitignore
368
378
  - spec/fixtures/hook/app/controllers/api/api_keys_controller.rb
369
379
  - spec/fixtures/hook/app/controllers/organizations_controller.rb
@@ -536,6 +546,8 @@ files:
536
546
  - spec/fixtures/rails6_users_app/spec/models/user_spec.rb
537
547
  - spec/fixtures/rails6_users_app/spec/rails_helper.rb
538
548
  - spec/fixtures/rails6_users_app/spec/spec_helper.rb
549
+ - spec/fixtures/rails6_users_app/test/controllers/functional_calc_test.rb
550
+ - spec/fixtures/rails6_users_app/test/integration/integration_calc_test.rb
539
551
  - spec/fixtures/rails6_users_app/users_app/.gitignore
540
552
  - spec/hook_spec.rb
541
553
  - spec/open_spec.rb
@@ -545,10 +557,12 @@ files:
545
557
  - spec/record_net_http_spec.rb
546
558
  - spec/record_sql_rails_pg_spec.rb
547
559
  - spec/remote_recording_spec.rb
560
+ - spec/service/config_analyzer_spec.rb
548
561
  - spec/spec_helper.rb
549
562
  - spec/swagger/swagger_spec.rb
550
563
  - spec/util_spec.rb
551
564
  - test/agent_setup_init_test.rb
565
+ - test/agent_setup_status_test.rb
552
566
  - test/bundle_vendor_test.rb
553
567
  - test/cucumber_test.rb
554
568
  - test/expectations/openssl_test_key_sign1.json