cucumber-html-formatter 21.1.0 → 21.2.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.
- checksums.yaml +4 -4
- data/assets/main.js +1 -1
- data/assets/main.js.LICENSE.txt +0 -92
- data/bin/cucumber-html-formatter +2 -2
- data/lib/cucumber/html_formatter/assets_loader.rb +1 -1
- data/lib/cucumber/html_formatter/formatter.rb +1 -3
- metadata +24 -20
- data/spec/acceptance_spec.rb +0 -34
- data/spec/html_formatter/assets_loader_spec.rb +0 -33
- data/spec/html_formatter/formatter_spec.rb +0 -87
- data/spec/html_formatter/template_writer_spec.rb +0 -31
- data/spec/spec_helper.rb +0 -1
data/assets/main.js.LICENSE.txt
CHANGED
|
@@ -5,88 +5,6 @@
|
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
/*!
|
|
9
|
-
* Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com
|
|
10
|
-
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
|
11
|
-
* Copyright 2022 Fonticons, Inc.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
/*!
|
|
15
|
-
* elasticlunr.Configuration
|
|
16
|
-
* Copyright (C) 2016 Wei Song
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
/*!
|
|
20
|
-
* elasticlunr.DocumentStore
|
|
21
|
-
* Copyright (C) 2016 Wei Song
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
/*!
|
|
25
|
-
* elasticlunr.EventEmitter
|
|
26
|
-
* Copyright (C) 2016 Oliver Nightingale
|
|
27
|
-
* Copyright (C) 2016 Wei Song
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
/*!
|
|
31
|
-
* elasticlunr.Index
|
|
32
|
-
* Copyright (C) 2016 Oliver Nightingale
|
|
33
|
-
* Copyright (C) 2016 Wei Song
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
/*!
|
|
37
|
-
* elasticlunr.InvertedIndex
|
|
38
|
-
* Copyright (C) 2016 Wei Song
|
|
39
|
-
* Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
|
|
40
|
-
*/
|
|
41
|
-
|
|
42
|
-
/*!
|
|
43
|
-
* elasticlunr.Pipeline
|
|
44
|
-
* Copyright (C) 2016 Oliver Nightingale
|
|
45
|
-
* Copyright (C) 2016 Wei Song
|
|
46
|
-
*/
|
|
47
|
-
|
|
48
|
-
/*!
|
|
49
|
-
* elasticlunr.js
|
|
50
|
-
* Copyright (C) 2016 Oliver Nightingale
|
|
51
|
-
* Copyright (C) 2016 Wei Song
|
|
52
|
-
*/
|
|
53
|
-
|
|
54
|
-
/*!
|
|
55
|
-
* elasticlunr.stemmer
|
|
56
|
-
* Copyright (C) 2016 Oliver Nightingale
|
|
57
|
-
* Copyright (C) 2016 Wei Song
|
|
58
|
-
* Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
|
|
59
|
-
*/
|
|
60
|
-
|
|
61
|
-
/*!
|
|
62
|
-
* elasticlunr.stopWordFilter
|
|
63
|
-
* Copyright (C) 2016 Oliver Nightingale
|
|
64
|
-
* Copyright (C) 2016 Wei Song
|
|
65
|
-
*/
|
|
66
|
-
|
|
67
|
-
/*!
|
|
68
|
-
* elasticlunr.tokenizer
|
|
69
|
-
* Copyright (C) 2016 Oliver Nightingale
|
|
70
|
-
* Copyright (C) 2016 Wei Song
|
|
71
|
-
*/
|
|
72
|
-
|
|
73
|
-
/*!
|
|
74
|
-
* elasticlunr.trimmer
|
|
75
|
-
* Copyright (C) 2016 Oliver Nightingale
|
|
76
|
-
* Copyright (C) 2016 Wei Song
|
|
77
|
-
*/
|
|
78
|
-
|
|
79
|
-
/*!
|
|
80
|
-
* elasticlunr.utils
|
|
81
|
-
* Copyright (C) 2016 Oliver Nightingale
|
|
82
|
-
* Copyright (C) 2016 Wei Song
|
|
83
|
-
*/
|
|
84
|
-
|
|
85
|
-
/*!
|
|
86
|
-
* lunr.SortedSet
|
|
87
|
-
* Copyright (C) 2016 Oliver Nightingale
|
|
88
|
-
*/
|
|
89
|
-
|
|
90
8
|
/*!
|
|
91
9
|
* repeat-string <https://github.com/jonschlinkert/repeat-string>
|
|
92
10
|
*
|
|
@@ -139,16 +57,6 @@ and limitations under the License.
|
|
|
139
57
|
* LICENSE file in the root directory of this source tree.
|
|
140
58
|
*/
|
|
141
59
|
|
|
142
|
-
/**
|
|
143
|
-
* elasticlunr - http://weixsong.github.io
|
|
144
|
-
* Lightweight full-text search engine in Javascript for browser search and offline search. - 0.9.5
|
|
145
|
-
*
|
|
146
|
-
* Copyright (C) 2016 Oliver Nightingale
|
|
147
|
-
* Copyright (C) 2016 Wei Song
|
|
148
|
-
* MIT Licensed
|
|
149
|
-
* @license
|
|
150
|
-
*/
|
|
151
|
-
|
|
152
60
|
/** @license React v17.0.2
|
|
153
61
|
* react-is.production.min.js
|
|
154
62
|
*
|
data/bin/cucumber-html-formatter
CHANGED
|
@@ -5,7 +5,7 @@ require 'optparse'
|
|
|
5
5
|
require 'cucumber/messages'
|
|
6
6
|
require 'cucumber/html_formatter'
|
|
7
7
|
|
|
8
|
-
formatter = Cucumber::HTMLFormatter::Formatter.new(
|
|
8
|
+
formatter = Cucumber::HTMLFormatter::Formatter.new($stdout)
|
|
9
9
|
|
|
10
10
|
option_parser = OptionParser.new do |opts|
|
|
11
11
|
opts.on_tail('-h', '--help', 'Show this message') do
|
|
@@ -15,6 +15,6 @@ option_parser = OptionParser.new do |opts|
|
|
|
15
15
|
end
|
|
16
16
|
options = {}
|
|
17
17
|
option_parser.parse!(into: options)
|
|
18
|
-
message_enumerator = Cucumber::Messages::NdjsonToMessageEnumerator.new(
|
|
18
|
+
message_enumerator = Cucumber::Messages::NdjsonToMessageEnumerator.new($stdin)
|
|
19
19
|
|
|
20
20
|
formatter.process_messages(message_enumerator)
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cucumber-html-formatter
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 21.
|
|
4
|
+
version: 21.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vincent Prêtre
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-12-
|
|
11
|
+
date: 2023-12-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: cucumber-messages
|
|
@@ -30,6 +30,20 @@ dependencies:
|
|
|
30
30
|
- - "<"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
32
|
version: '25'
|
|
33
|
+
- !ruby/object:Gem::Dependency
|
|
34
|
+
name: cucumber-compatibility-kit
|
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '14.1'
|
|
40
|
+
type: :development
|
|
41
|
+
prerelease: false
|
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '14.1'
|
|
33
47
|
- !ruby/object:Gem::Dependency
|
|
34
48
|
name: rake
|
|
35
49
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -59,33 +73,33 @@ dependencies:
|
|
|
59
73
|
- !ruby/object:Gem::Version
|
|
60
74
|
version: '3.12'
|
|
61
75
|
- !ruby/object:Gem::Dependency
|
|
62
|
-
name:
|
|
76
|
+
name: rubocop
|
|
63
77
|
requirement: !ruby/object:Gem::Requirement
|
|
64
78
|
requirements:
|
|
65
79
|
- - "~>"
|
|
66
80
|
- !ruby/object:Gem::Version
|
|
67
|
-
version:
|
|
81
|
+
version: 1.41.0
|
|
68
82
|
type: :development
|
|
69
83
|
prerelease: false
|
|
70
84
|
version_requirements: !ruby/object:Gem::Requirement
|
|
71
85
|
requirements:
|
|
72
86
|
- - "~>"
|
|
73
87
|
- !ruby/object:Gem::Version
|
|
74
|
-
version:
|
|
88
|
+
version: 1.41.0
|
|
75
89
|
- !ruby/object:Gem::Dependency
|
|
76
|
-
name: rubocop
|
|
90
|
+
name: rubocop-rake
|
|
77
91
|
requirement: !ruby/object:Gem::Requirement
|
|
78
92
|
requirements:
|
|
79
93
|
- - "~>"
|
|
80
94
|
- !ruby/object:Gem::Version
|
|
81
|
-
version:
|
|
95
|
+
version: 0.6.0
|
|
82
96
|
type: :development
|
|
83
97
|
prerelease: false
|
|
84
98
|
version_requirements: !ruby/object:Gem::Requirement
|
|
85
99
|
requirements:
|
|
86
100
|
- - "~>"
|
|
87
101
|
- !ruby/object:Gem::Version
|
|
88
|
-
version:
|
|
102
|
+
version: 0.6.0
|
|
89
103
|
- !ruby/object:Gem::Dependency
|
|
90
104
|
name: rubocop-rspec
|
|
91
105
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -117,11 +131,6 @@ files:
|
|
|
117
131
|
- lib/cucumber/html_formatter/assets_loader.rb
|
|
118
132
|
- lib/cucumber/html_formatter/formatter.rb
|
|
119
133
|
- lib/cucumber/html_formatter/template_writer.rb
|
|
120
|
-
- spec/acceptance_spec.rb
|
|
121
|
-
- spec/html_formatter/assets_loader_spec.rb
|
|
122
|
-
- spec/html_formatter/formatter_spec.rb
|
|
123
|
-
- spec/html_formatter/template_writer_spec.rb
|
|
124
|
-
- spec/spec_helper.rb
|
|
125
134
|
homepage: https://github.com/cucumber/html-formatter
|
|
126
135
|
licenses:
|
|
127
136
|
- MIT
|
|
@@ -151,10 +160,5 @@ requirements: []
|
|
|
151
160
|
rubygems_version: 3.4.10
|
|
152
161
|
signing_key:
|
|
153
162
|
specification_version: 4
|
|
154
|
-
summary: cucumber-html-formatter-21.
|
|
155
|
-
test_files:
|
|
156
|
-
- spec/acceptance_spec.rb
|
|
157
|
-
- spec/html_formatter/assets_loader_spec.rb
|
|
158
|
-
- spec/html_formatter/formatter_spec.rb
|
|
159
|
-
- spec/html_formatter/template_writer_spec.rb
|
|
160
|
-
- spec/spec_helper.rb
|
|
163
|
+
summary: cucumber-html-formatter-21.2.0
|
|
164
|
+
test_files: []
|
data/spec/acceptance_spec.rb
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'cucumber-compatibility-kit'
|
|
4
|
-
|
|
5
|
-
describe Cucumber::HTMLFormatter.name do
|
|
6
|
-
|
|
7
|
-
Cucumber::CompatibilityKit.gherkin_examples.each do |example_name|
|
|
8
|
-
def run_formatter(messages)
|
|
9
|
-
out = StringIO.new
|
|
10
|
-
formatter = Cucumber::HTMLFormatter::Formatter.new(out)
|
|
11
|
-
formatter.process_messages(messages)
|
|
12
|
-
out.string
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
describe "'#{example_name}' example" do
|
|
16
|
-
subject(:html_report) { run_formatter(File.readlines(example_ndjson)) }
|
|
17
|
-
|
|
18
|
-
let(:example_ndjson) { "#{Cucumber::CompatibilityKit.example_path(example_name)}/#{example_name}.feature.ndjson" }
|
|
19
|
-
|
|
20
|
-
it { is_expected.to match(/\A<!DOCTYPE html>\s?<html/) }
|
|
21
|
-
it { is_expected.to match(/<\/html>\Z/) }
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
Cucumber::CompatibilityKit.markdown_examples.each do |example_name|
|
|
26
|
-
describe "'#{example_name}' example" do
|
|
27
|
-
let(:example_ndjson) { "#{Cucumber::CompatibilityKit.example_path(example_name)}/#{example_name}.feature.md.ndjson" }
|
|
28
|
-
subject(:html_report) { run_formatter(File.readlines(example_ndjson)) }
|
|
29
|
-
|
|
30
|
-
it { is_expected.to match(/\A<!DOCTYPE html>\s?<html/) }
|
|
31
|
-
it { is_expected.to match(/<\/html>\Z/) }
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
describe Cucumber::HTMLFormatter::AssetsLoader do
|
|
4
|
-
subject(:assets_loader) { described_class.new }
|
|
5
|
-
|
|
6
|
-
before do
|
|
7
|
-
allow(File).to receive(:read).and_return('whatever content')
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
describe '#template' do
|
|
11
|
-
it 'reads the content of assets/index.mustache.html' do
|
|
12
|
-
expect(File).to receive(:read).with(/.*\/assets\/index\.mustache\.html$/)
|
|
13
|
-
|
|
14
|
-
assets_loader.template
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
describe '#css' do
|
|
19
|
-
it 'reads the content of assets/main.css' do
|
|
20
|
-
expect(File).to receive(:read).with(/.*\/assets\/main\.css$/)
|
|
21
|
-
|
|
22
|
-
assets_loader.css
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
describe '#script' do
|
|
27
|
-
it 'reads the content of assets/main.js' do
|
|
28
|
-
expect(File).to receive(:read).with(/.*\/assets\/main\.js$/)
|
|
29
|
-
|
|
30
|
-
assets_loader.script
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'cucumber/messages'
|
|
4
|
-
|
|
5
|
-
describe Cucumber::HTMLFormatter::Formatter do
|
|
6
|
-
subject(:formatter) do
|
|
7
|
-
formatter = Cucumber::HTMLFormatter::Formatter.new(out)
|
|
8
|
-
allow(formatter).to receive(:assets_loader).and_return(assets)
|
|
9
|
-
formatter
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
let(:out) { StringIO.new }
|
|
13
|
-
let(:fake_assets) do
|
|
14
|
-
Class.new do
|
|
15
|
-
def template
|
|
16
|
-
'<html>{{css}}<body>{{messages}}</body>{{script}}</html>'
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def css
|
|
20
|
-
'<style>div { color: red }</style>'
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def script
|
|
24
|
-
"<script>alert('Hi')</script>"
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
let(:assets) { fake_assets.new }
|
|
29
|
-
|
|
30
|
-
describe '#process_messages' do
|
|
31
|
-
let(:message) { Cucumber::Messages::Envelope.new(pickle: Cucumber::Messages::Pickle.new(id: 'some-random-uid')) }
|
|
32
|
-
|
|
33
|
-
it 'produces the full html report' do
|
|
34
|
-
formatter.process_messages([message])
|
|
35
|
-
expect(out.string).to eq(
|
|
36
|
-
[
|
|
37
|
-
'<html>',
|
|
38
|
-
'<style>div { color: red }</style>',
|
|
39
|
-
'<body>',
|
|
40
|
-
"#{message.to_json}</body>",
|
|
41
|
-
"<script>alert('Hi')</script>",
|
|
42
|
-
'</html>'
|
|
43
|
-
].join("\n")
|
|
44
|
-
)
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
describe '#write_pre_message' do
|
|
49
|
-
it 'outputs the content of the template up to {{messages}}' do
|
|
50
|
-
formatter.write_pre_message
|
|
51
|
-
|
|
52
|
-
expect(out.string).to eq("<html>\n<style>div { color: red }</style>\n<body>\n")
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
it 'does not write the content twice' do
|
|
56
|
-
formatter.write_pre_message
|
|
57
|
-
formatter.write_pre_message
|
|
58
|
-
|
|
59
|
-
expect(out.string).to eq("<html>\n<style>div { color: red }</style>\n<body>\n")
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
describe '#write_message' do
|
|
64
|
-
let(:message) { Cucumber::Messages::Envelope.new(pickle: Cucumber::Messages::Pickle.new(id: 'some-random-uid')) }
|
|
65
|
-
|
|
66
|
-
it 'appends the message to out' do
|
|
67
|
-
formatter.write_message(message)
|
|
68
|
-
|
|
69
|
-
expect(out.string).to eq(message.to_json)
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
it 'adds commas between the messages' do
|
|
73
|
-
formatter.write_message(message)
|
|
74
|
-
formatter.write_message(message)
|
|
75
|
-
|
|
76
|
-
expect(out.string).to eq("#{message.to_json},\n#{message.to_json}")
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
describe '#write_post_message' do
|
|
81
|
-
it 'outputs the template end' do
|
|
82
|
-
formatter.write_post_message
|
|
83
|
-
|
|
84
|
-
expect(out.string).to eq("</body>\n<script>alert('Hi')</script>\n</html>")
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
end
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
describe Cucumber::HTMLFormatter::TemplateWriter do
|
|
4
|
-
describe '#write_between' do
|
|
5
|
-
subject(:template_writer) { described_class.new(template) }
|
|
6
|
-
|
|
7
|
-
let(:template) { 'Some template {{here}} with content after' }
|
|
8
|
-
|
|
9
|
-
it 'outputs content of the template between the given words' do
|
|
10
|
-
expect(template_writer.write_between('Some', 'content')).to eq(' template {{here}} with ')
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
context 'when the `from` argument is `nil`' do
|
|
14
|
-
it 'outputs template from the beginning' do
|
|
15
|
-
expect(template_writer.write_between(nil, '{{here}}')).to eq('Some template ')
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
context 'when the `to` argument is `nil`' do
|
|
20
|
-
it 'outputs content of template after the "from" argument value' do
|
|
21
|
-
expect(template_writer.write_between('{{here}}', nil)).to eq(' with content after')
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
context 'when the `from` argument is not contained in the template' do
|
|
26
|
-
it 'renders the template from the beginning' do
|
|
27
|
-
expect(template_writer.write_between('Unknown start', '{{here}}')).to eq('Some template ')
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
data/spec/spec_helper.rb
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require 'cucumber/html_formatter'
|