appmap 0.21.0 → 0.22.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/exe/appmap +2 -2
- data/lib/appmap/command/inspect.rb +4 -1
- data/lib/appmap/command/upload.rb +7 -11
- data/lib/appmap/rspec.rb +20 -5
- data/lib/appmap/version.rb +1 -1
- data/test/cli_test.rb +10 -1
- data/test/rspec_test.rb +15 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e4bb797e4a52228da17a1d2bea86cc7b39c0e77f868794282a4a506bc118c1b
|
4
|
+
data.tar.gz: 17c42a6dbab64ded9e0c0735df3e1a6b4ffb871f5368c134038fa4574f18a140
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce536f9473bc5c13127c7f9e327e011123a0b56291197c1c3f91db68c7ec2fa64438382cc08f002e2634cf7a1877b630f43849989197ca0285da72e79a93767d
|
7
|
+
data.tar.gz: 5a457dbc9afa127d6ca284bf47ee549b3e7a0cb579e1edf2313783ced314e87134ac9a2c4b06e1035402e5619876d7d990b0f65268e12a991480641b5574bc0e
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
# v0.22.0
|
2
|
+
|
3
|
+
* **RSpec** recorder generates an "inventory" (AppMap with classMap, without events) named `Inventory.appmap.json`.
|
4
|
+
* **appmap inspect** generates an inventory AppMap which includes `version`, `metadata`, and `classMap`. Previously, the file output by this command was the class map represented as an array.
|
5
|
+
|
1
6
|
# v0.21.0
|
2
7
|
|
3
8
|
* Scenario data includes `recorder` and `client` info, describing how the data was recorded.
|
data/exe/appmap
CHANGED
@@ -48,8 +48,8 @@ module AppMap
|
|
48
48
|
|
49
49
|
c.action do
|
50
50
|
require 'appmap/command/inspect'
|
51
|
-
|
52
|
-
@output_file.write JSON.pretty_generate(
|
51
|
+
appmap = AppMap::Command::Inspect.new(@config).perform
|
52
|
+
@output_file.write JSON.pretty_generate(appmap)
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
@@ -4,7 +4,10 @@ module AppMap
|
|
4
4
|
|
5
5
|
class Inspect < InspectStruct
|
6
6
|
def perform
|
7
|
-
|
7
|
+
require 'appmap/command/record'
|
8
|
+
|
9
|
+
features = AppMap.inspect(config)
|
10
|
+
{ version: AppMap::APPMAP_FORMAT_VERSION, metadata: AppMap::Command::Record.detect_metadata, classMap: features }
|
8
11
|
end
|
9
12
|
end
|
10
13
|
end
|
@@ -21,11 +21,10 @@ module AppMap
|
|
21
21
|
def perform
|
22
22
|
appmap = data.clone
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
events = data.delete('events') || []
|
27
|
-
class_map = data.delete('classMap') || []
|
24
|
+
events = data.delete('events')
|
25
|
+
class_map = data.delete('classMap') || []
|
28
26
|
|
27
|
+
unless events.blank?
|
29
28
|
pruned_events = []
|
30
29
|
stack = []
|
31
30
|
events.each do |evt|
|
@@ -44,14 +43,11 @@ module AppMap
|
|
44
43
|
|
45
44
|
warn "Pruned events to #{pruned_events.length}" if events.length > pruned_events.length
|
46
45
|
|
47
|
-
events = pruned_events
|
48
|
-
|
49
|
-
class_map = prune(class_map, events: events)
|
50
|
-
appmap[:classMap] = class_map
|
51
|
-
appmap[:events] = events
|
46
|
+
appmap[:events] = pruned_events
|
47
|
+
appmap[:classMap] = prune(class_map, events: pruned_events)
|
52
48
|
else
|
53
|
-
|
54
|
-
appmap =
|
49
|
+
appmap[:events] = []
|
50
|
+
appmap[:classMap] = prune(class_map)
|
55
51
|
end
|
56
52
|
|
57
53
|
upload_file = { user: user, org: org, data: appmap }.compact
|
data/lib/appmap/rspec.rb
CHANGED
@@ -29,7 +29,7 @@ module AppMap
|
|
29
29
|
FileUtils.mkdir_p APPMAP_OUTPUT_DIR
|
30
30
|
end
|
31
31
|
|
32
|
-
def save(example_name, events, feature_name: nil, feature_group_name: nil, labels: nil)
|
32
|
+
def save(example_name, events: nil, feature_name: nil, feature_group_name: nil, labels: nil)
|
33
33
|
require 'appmap/command/record'
|
34
34
|
metadata = AppMap::Command::Record.detect_metadata.tap do |m|
|
35
35
|
m[:name] = example_name
|
@@ -52,7 +52,7 @@ module AppMap
|
|
52
52
|
classMap: features,
|
53
53
|
metadata: metadata,
|
54
54
|
events: events
|
55
|
-
}
|
55
|
+
}.compact
|
56
56
|
fname = sanitize_filename(example_name)
|
57
57
|
File.write(File.join(APPMAP_OUTPUT_DIR, "#{fname}.appmap.json"), JSON.generate(appmap))
|
58
58
|
end
|
@@ -198,6 +198,12 @@ module AppMap
|
|
198
198
|
tp.defined_class.to_s == 'RSpec::Core::Example'
|
199
199
|
end
|
200
200
|
|
201
|
+
def generate_inventory
|
202
|
+
Recorder.new.tap do |recorder|
|
203
|
+
recorder.setup
|
204
|
+
end.save 'Inventory', labels: %w[inventory]
|
205
|
+
end
|
206
|
+
|
201
207
|
def generate_appmaps_from_specs
|
202
208
|
recorder = Recorder.new
|
203
209
|
recorder.setup
|
@@ -312,7 +318,7 @@ module AppMap
|
|
312
318
|
feature_name = normalize.call(feature_name) if feature_name
|
313
319
|
|
314
320
|
recorder.save full_description,
|
315
|
-
events,
|
321
|
+
events: events,
|
316
322
|
feature_name: feature_name,
|
317
323
|
feature_group_name: feature_group,
|
318
324
|
labels: labels.blank? ? nil : labels
|
@@ -320,8 +326,17 @@ module AppMap
|
|
320
326
|
end
|
321
327
|
end
|
322
328
|
end
|
323
|
-
end
|
324
329
|
|
325
|
-
|
330
|
+
def enabled?
|
331
|
+
ENV['APPMAP'] == 'true'
|
332
|
+
end
|
333
|
+
|
334
|
+
def run
|
335
|
+
generate_inventory
|
336
|
+
generate_appmaps_from_specs
|
337
|
+
end
|
338
|
+
end
|
326
339
|
end
|
327
340
|
end
|
341
|
+
|
342
|
+
AppMap::RSpec.run if AppMap::RSpec.enabled?
|
data/lib/appmap/version.rb
CHANGED
data/test/cli_test.rb
CHANGED
@@ -33,7 +33,16 @@ class CLITest < Minitest::Test
|
|
33
33
|
|
34
34
|
assert_equal 0, $CHILD_STATUS.exitstatus
|
35
35
|
assert !output.blank?, 'Output should exist in stdout'
|
36
|
-
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_inspect_fields
|
39
|
+
output = `./exe/appmap inspect -o -`
|
40
|
+
|
41
|
+
output = JSON.parse(output)
|
42
|
+
assert_includes output.keys, 'version'
|
43
|
+
assert_includes output.keys, 'classMap'
|
44
|
+
assert_includes output.keys, 'metadata'
|
45
|
+
assert !output.keys.include?('events')
|
37
46
|
end
|
38
47
|
|
39
48
|
def test_record
|
data/test/rspec_test.rb
CHANGED
@@ -17,6 +17,21 @@ class RSpecTest < Minitest::Test
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
+
def test_inventory
|
21
|
+
perform_test 'plain_hello_spec' do
|
22
|
+
appmap_file = 'tmp/appmap/rspec/Inventory.appmap.json'
|
23
|
+
|
24
|
+
assert File.file?(appmap_file), 'appmap output file does not exist'
|
25
|
+
appmap = JSON.parse(File.read(appmap_file))
|
26
|
+
assert_equal AppMap::APPMAP_FORMAT_VERSION, appmap['version']
|
27
|
+
assert_includes appmap.keys, 'metadata'
|
28
|
+
metadata = appmap['metadata']
|
29
|
+
assert_equal 'Inventory', metadata['name']
|
30
|
+
assert_includes metadata.keys, 'labels'
|
31
|
+
assert_equal metadata['labels'], %w[inventory]
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
20
35
|
def test_record_decorated_rspec
|
21
36
|
perform_test 'decorated_hello_spec' do
|
22
37
|
appmap_file = 'tmp/appmap/rspec/Hello_says_hello.appmap.json'
|
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.
|
4
|
+
version: 0.22.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: 2019-12-
|
11
|
+
date: 2019-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|