rspec-tap-formatters 0.1.0

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.
@@ -0,0 +1,92 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe RSpec::TAP::Formatters::TestStats do
4
+ subject(:test_stats) { described_class.new }
5
+
6
+ let(:index) { (1..3).to_a.sample }
7
+ let(:example) { OpenStruct.new(metadata: metadata) }
8
+ let(:notification) { OpenStruct.new(example: example) }
9
+
10
+ before do
11
+ test_stats.instance_variable_set(:@data, {})
12
+ end
13
+
14
+ describe '#populate' do
15
+ context 'when root level test' do
16
+ let(:line_number) { 1 + SecureRandom.random_number(5) }
17
+ let(:metadata) do
18
+ {
19
+ example_group: {
20
+ line_number: line_number
21
+ }
22
+ }
23
+ end
24
+
25
+ it 'creates one data point' do
26
+ expect { test_stats.populate(notification, index) }
27
+ .to change { test_stats.data.size }
28
+ .from(0)
29
+ .to(1)
30
+ end
31
+
32
+ it 'updates total tests count' do
33
+ test_stats.populate(notification, index)
34
+
35
+ expect(test_stats.data[line_number][0]).to eq(1)
36
+ end
37
+
38
+ it 'updates tests status count' do
39
+ test_stats.populate(notification, index)
40
+
41
+ expect(test_stats.data[line_number][index]).to eq(1)
42
+ end
43
+ end
44
+
45
+ context 'when non-root level test' do
46
+ let(:line_numbers) do
47
+ numbers = Set.new
48
+ numbers << 1 + SecureRandom.random_number(100) while numbers.size != 4
49
+ numbers.sort
50
+ end
51
+ let(:metadata) do
52
+ {
53
+ example_group: {
54
+ line_number: line_numbers[3],
55
+ parent_example_group: {
56
+ line_number: line_numbers[2],
57
+ parent_example_group: {
58
+ line_number: line_numbers[1],
59
+ parent_example_group: {
60
+ line_number: line_numbers[0]
61
+ }
62
+ }
63
+ }
64
+ }
65
+ }
66
+ end
67
+
68
+ it 'creates four data points' do
69
+ expect { test_stats.populate(notification, index) }
70
+ .to change { test_stats.data.size }
71
+ .from(0)
72
+ .to(4)
73
+ end
74
+
75
+ it 'updates total tests count' do
76
+ test_stats.populate(notification, index)
77
+
78
+ line_numbers.each do |line_number|
79
+ expect(test_stats.data[line_number][0]).to eq(1)
80
+ end
81
+ end
82
+
83
+ it 'updates tests status count' do
84
+ test_stats.populate(notification, index)
85
+
86
+ line_numbers.each do |line_number|
87
+ expect(test_stats.data[line_number][index]).to eq(1)
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
metadata ADDED
@@ -0,0 +1,138 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rspec-tap-formatters
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Abhimanyu Singh
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-11-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: psych
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '4.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '2.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '4.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: rspec-core
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '3.0'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '4.0'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '3.0'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '4.0'
53
+ - !ruby/object:Gem::Dependency
54
+ name: bundler
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 1.15.0
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '3.0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 1.15.0
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '3.0'
73
+ description: |-
74
+ Formats RSpec-3 test report in TAP format with a proper nested display of
75
+ example groups and includes stats for the total number of passed,
76
+ failed, and pending tests per example group. It supports four different
77
+ TAP format styles.
78
+ email: abhisinghabhimanyu@gmail.com
79
+ executables: []
80
+ extensions: []
81
+ extra_rdoc_files: []
82
+ files:
83
+ - ".document"
84
+ - ".yardopts"
85
+ - CHANGELOG.md
86
+ - LICENSE.md
87
+ - README.md
88
+ - lib/rspec/tap/formatters.rb
89
+ - lib/rspec/tap/formatters/compact.rb
90
+ - lib/rspec/tap/formatters/core_ext/hash.rb
91
+ - lib/rspec/tap/formatters/core_ext/string.rb
92
+ - lib/rspec/tap/formatters/default.rb
93
+ - lib/rspec/tap/formatters/flat.rb
94
+ - lib/rspec/tap/formatters/flat_compact.rb
95
+ - lib/rspec/tap/formatters/printer.rb
96
+ - lib/rspec/tap/formatters/test_stats.rb
97
+ - lib/rspec/tap/formatters/version.rb
98
+ - spec/rspec/tap/formatters/compact_spec.rb
99
+ - spec/rspec/tap/formatters/default_spec.rb
100
+ - spec/rspec/tap/formatters/flat_compact_spec.rb
101
+ - spec/rspec/tap/formatters/flat_spec.rb
102
+ - spec/rspec/tap/formatters/printer_spec.rb
103
+ - spec/rspec/tap/formatters/test_stats_spec.rb
104
+ homepage: https://www.github.com/avmnu-sng/rspec-tap-formatters
105
+ licenses:
106
+ - MIT
107
+ metadata:
108
+ homepage_uri: https://www.github.com/avmnu-sng/rspec-tap-formatters
109
+ changelog_uri: https://www.github.com/avmnu-sng/rspec-tap-formatters/blob/master/CHANGELOG.md
110
+ source_code_uri: https://www.github.com/avmnu-sng/rspec-tap-formatters
111
+ documentation_uri: https://rspec-tap-formatters.readthedocs.io/en/latest
112
+ bug_tracker_uri: https://github.com/avmnu-sng/rspec-tap-formatters/issues
113
+ post_install_message:
114
+ rdoc_options: []
115
+ require_paths:
116
+ - lib
117
+ required_ruby_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: 2.3.0
122
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: 2.0.0
127
+ requirements: []
128
+ rubygems_version: 3.0.6
129
+ signing_key:
130
+ specification_version: 4
131
+ summary: TAP Formatters for RSpec 3
132
+ test_files:
133
+ - spec/rspec/tap/formatters/compact_spec.rb
134
+ - spec/rspec/tap/formatters/default_spec.rb
135
+ - spec/rspec/tap/formatters/flat_compact_spec.rb
136
+ - spec/rspec/tap/formatters/flat_spec.rb
137
+ - spec/rspec/tap/formatters/printer_spec.rb
138
+ - spec/rspec/tap/formatters/test_stats_spec.rb