rspec-html 0.2.3 → 0.2.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cf565ab0af76a2408b1185d8516aa6a18ac94bdf3521bd76235ffeab2cf85c84
4
- data.tar.gz: cceb245c801bb10e3a84d942a8101014a585ac5b00e958bd682b6b0a3599143a
3
+ metadata.gz: d97c22c301a390a13dd3faa6e259633d6c991346e35da9cb3abded233b2a3809
4
+ data.tar.gz: 10d4ce1f83f23f6a2620050a3d6cf680aab9f5c63dd59d51f2d18170140742bf
5
5
  SHA512:
6
- metadata.gz: 07ea3aedf2366de58c8c39af7ff8fcf17ff273ea1df71799215a0f19fdd029a0e32a8517b154e140175b6211d258d6376ef4faa40fdcb645ca4183196a4cec96
7
- data.tar.gz: ca57887c542a4817181d1da196fc05f9739be992aa7a10b2cdb7aae293d066ddfc6c2009aeb204cfc315ac2745ef36ac1792fa29b22f11a09cb02cb441a7d14b
6
+ metadata.gz: 4389b7626dee960fe7933446a09a72d6bf1021395184b3b6fc0a5f2afd8a7d42b40422a7a92880030cc157bd4e15961546799884bb330c90ce251ef575316ee4
7
+ data.tar.gz: d789b659fff49df36383b979b92127af11a268568687f67bcdebf7860e0b12950c93082548fb79540c513eb8b5588c7983fa27b2b34f3c986bc73b1db990ffd3
data/.rubocop.yml CHANGED
@@ -6,80 +6,9 @@ Metrics/BlockLength:
6
6
  Gemspec/RequiredRubyVersion:
7
7
  Enabled: false
8
8
 
9
- Layout/LineLength:
10
- Max: 100
9
+ AllCops:
10
+ NewCops: enable
11
11
 
12
- Layout/EmptyLinesAroundAttributeAccessor:
13
- Enabled: true
14
- Layout/SpaceAroundMethodCallOperator:
15
- Enabled: true
16
- Lint/DeprecatedOpenSSLConstant:
17
- Enabled: true
18
- Lint/DuplicateElsifCondition:
19
- Enabled: true
20
- Lint/MixedRegexpCaptureTypes:
21
- Enabled: true
22
- Lint/RaiseException:
23
- Enabled: true
24
- Lint/StructNewOverride:
25
- Enabled: true
26
- Style/AccessorGrouping:
27
- Enabled: true
28
- Style/ArrayCoercion:
29
- Enabled: true
30
- Style/BisectedAttrAccessor:
31
- Enabled: true
32
- Style/CaseLikeIf:
33
- Enabled: true
34
- Style/ExponentialNotation:
35
- Enabled: true
36
- Style/HashAsLastArrayItem:
37
- Enabled: true
38
- Style/HashEachMethods:
39
- Enabled: true
40
- Style/HashLikeCase:
41
- Enabled: true
42
- Style/HashTransformKeys:
43
- Enabled: true
44
- Style/HashTransformValues:
45
- Enabled: true
46
- Style/RedundantAssignment:
47
- Enabled: true
48
- Style/RedundantFetchBlock:
49
- Enabled: true
50
- Style/RedundantFileExtensionInRequire:
51
- Enabled: true
52
- Style/RedundantRegexpCharacterClass:
53
- Enabled: true
54
- Style/RedundantRegexpEscape:
55
- Enabled: true
12
+ # Compatibility with older (< 2.6) Rubies.
56
13
  Style/SlicingWithRange:
57
- Enabled: true
58
- Lint/BinaryOperatorWithIdenticalOperands:
59
- Enabled: true
60
- Lint/DuplicateRescueException:
61
- Enabled: true
62
- Lint/EmptyConditionalBody:
63
- Enabled: true
64
- Lint/FloatComparison:
65
- Enabled: true
66
- Lint/MissingSuper:
67
- Enabled: true
68
- Lint/OutOfRangeRegexpRef:
69
- Enabled: true
70
- Lint/SelfAssignment:
71
- Enabled: true
72
- Lint/TopLevelReturnWithArgument:
73
- Enabled: true
74
- Lint/UnreachableLoop:
75
- Enabled: true
76
- Style/ExplicitBlockArgument:
77
- Enabled: true
78
- Style/GlobalStdStream:
79
- Enabled: true
80
- Style/OptionalBooleanParameter:
81
- Enabled: true
82
- Style/SingleArgumentDig:
83
- Enabled: true
84
- Style/StringConcatenation:
85
- Enabled: true
14
+ Enabled: false
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.6.5
1
+ 2.7.1
data/Gemfile.lock CHANGED
@@ -1,65 +1,68 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rspec-html (0.2.3)
4
+ rspec-html (0.2.7)
5
5
  nokogiri (~> 1.10)
6
6
  rspec (~> 3.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- ast (2.4.1)
11
+ ast (2.4.2)
12
12
  byebug (11.1.3)
13
- concurrent-ruby (1.1.6)
14
- devpack (0.1.2)
13
+ concurrent-ruby (1.1.9)
14
+ devpack (0.1.3)
15
15
  diff-lcs (1.4.4)
16
- i18n (1.8.5)
16
+ i18n (1.8.11)
17
17
  concurrent-ruby (~> 1.0)
18
- mini_portile2 (2.4.0)
19
- nokogiri (1.10.10)
20
- mini_portile2 (~> 2.4.0)
21
- paint (2.2.0)
22
- parallel (1.19.2)
23
- parser (2.7.1.4)
18
+ mini_portile2 (2.6.1)
19
+ nokogiri (1.12.5)
20
+ mini_portile2 (~> 2.6.1)
21
+ racc (~> 1.4)
22
+ paint (2.2.1)
23
+ parallel (1.21.0)
24
+ parser (3.0.3.2)
24
25
  ast (~> 2.4.1)
26
+ racc (1.6.0)
25
27
  rainbow (3.0.0)
26
- rake (13.0.1)
27
- regexp_parser (1.7.1)
28
- rexml (3.2.4)
29
- rspec (3.9.0)
30
- rspec-core (~> 3.9.0)
31
- rspec-expectations (~> 3.9.0)
32
- rspec-mocks (~> 3.9.0)
33
- rspec-core (3.9.2)
34
- rspec-support (~> 3.9.3)
35
- rspec-expectations (3.9.2)
28
+ rake (13.0.6)
29
+ regexp_parser (2.2.0)
30
+ rexml (3.2.5)
31
+ rspec (3.10.0)
32
+ rspec-core (~> 3.10.0)
33
+ rspec-expectations (~> 3.10.0)
34
+ rspec-mocks (~> 3.10.0)
35
+ rspec-core (3.10.1)
36
+ rspec-support (~> 3.10.0)
37
+ rspec-expectations (3.10.1)
36
38
  diff-lcs (>= 1.2.0, < 2.0)
37
- rspec-support (~> 3.9.0)
39
+ rspec-support (~> 3.10.0)
38
40
  rspec-its (1.3.0)
39
41
  rspec-core (>= 3.0.0)
40
42
  rspec-expectations (>= 3.0.0)
41
- rspec-mocks (3.9.1)
43
+ rspec-mocks (3.10.2)
42
44
  diff-lcs (>= 1.2.0, < 2.0)
43
- rspec-support (~> 3.9.0)
44
- rspec-support (3.9.3)
45
- rubocop (0.89.1)
45
+ rspec-support (~> 3.10.0)
46
+ rspec-support (3.10.3)
47
+ rubocop (0.93.1)
46
48
  parallel (~> 1.10)
47
- parser (>= 2.7.1.1)
49
+ parser (>= 2.7.1.5)
48
50
  rainbow (>= 2.2.2, < 4.0)
49
- regexp_parser (>= 1.7)
51
+ regexp_parser (>= 1.8)
50
52
  rexml
51
- rubocop-ast (>= 0.3.0, < 1.0)
53
+ rubocop-ast (>= 0.6.0)
52
54
  ruby-progressbar (~> 1.7)
53
55
  unicode-display_width (>= 1.4.0, < 2.0)
54
- rubocop-ast (0.3.0)
55
- parser (>= 2.7.1.4)
56
- rubocop-rspec (1.42.0)
57
- rubocop (>= 0.87.0)
58
- ruby-progressbar (1.10.1)
56
+ rubocop-ast (1.15.0)
57
+ parser (>= 3.0.1.1)
58
+ rubocop-rspec (1.44.1)
59
+ rubocop (~> 0.87)
60
+ rubocop-ast (>= 0.7.1)
61
+ ruby-progressbar (1.11.0)
59
62
  strong_versions (0.4.5)
60
63
  i18n (>= 0.5)
61
64
  paint (~> 2.0)
62
- unicode-display_width (1.7.0)
65
+ unicode-display_width (1.8.0)
63
66
 
64
67
  PLATFORMS
65
68
  ruby
@@ -72,9 +75,9 @@ DEPENDENCIES
72
75
  rake (~> 13.0)
73
76
  rspec-html!
74
77
  rspec-its (~> 1.3)
75
- rubocop (~> 0.89.1)
78
+ rubocop (~> 0.93.1)
76
79
  rubocop-rspec (~> 1.36)
77
80
  strong_versions (~> 0.4.5)
78
81
 
79
82
  BUNDLED WITH
80
- 2.0.2
83
+ 2.1.4
data/README.md CHANGED
@@ -7,7 +7,7 @@ _RSpec::HTML_ provides a simple object interface to HTML responses from [_RSpec
7
7
  Add the gem to your `Gemfile`:
8
8
 
9
9
  ```ruby
10
- gem 'rspec-html', '~> 0.2.3'
10
+ gem 'rspec-html', '~> 0.2.7'
11
11
  ```
12
12
 
13
13
  And rebuild your bundle:
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RSpec
4
4
  module HTML
5
- VERSION = '0.2.3'
5
+ VERSION = '0.2.7'
6
6
  end
7
7
  end
data/lib/rspec/html.rb CHANGED
@@ -11,11 +11,9 @@ module RSpec
11
11
  def document
12
12
  return @document if @document
13
13
 
14
- if !defined?(response) || response.nil?
15
- raise RSpecHTML::NoResponseError, 'No `response` object found. Make a request first.'
16
- end
17
-
18
14
  RSpecHTML::Element.new(Nokogiri::HTML.parse(response.body), :document)
15
+ rescue NameError
16
+ raise RSpecHTML::NoResponseError, 'No `response` object found. Make a request first.'
19
17
  end
20
18
 
21
19
  def parse_html(content)
@@ -8,8 +8,7 @@ module RSpecHTML
8
8
  extend Forwardable
9
9
 
10
10
  def_delegators :@search,
11
- :has_css?, :has_xpath?, :include?, :present?, :exist?,
12
- :text, :size, :length, :[]
11
+ :has_css?, :has_xpath?, :include?, :text, :truncated_text, :size, :length, :css, :xpath, :[]
13
12
 
14
13
  def initialize(element, name, options: {}, siblings: [])
15
14
  @name = name
@@ -19,6 +18,13 @@ module RSpecHTML
19
18
  @search = Search.new(@element, @siblings)
20
19
  end
21
20
 
21
+ def present?
22
+ return true if name == :document
23
+
24
+ @search.present?
25
+ end
26
+ alias exist? present?
27
+
22
28
  def inspect
23
29
  "<#{self.class}::#{name.to_s.capitalize}>"
24
30
  end
@@ -54,7 +54,7 @@ module RSpecHTML
54
54
 
55
55
  def filename
56
56
  _, _, name = self.class.name.rpartition('::')
57
- (name[0] + name[1..].gsub(/(.)([A-Z])/, '\1_\2')).downcase
57
+ (name[0] + name[1..-1].gsub(/(.)([A-Z])/, '\1_\2')).downcase
58
58
  end
59
59
  end
60
60
  end
@@ -46,6 +46,13 @@ module RSpecHTML
46
46
  @element&.text&.gsub(/\s+/, ' ')&.strip || ''
47
47
  end
48
48
 
49
+ def truncated_text
50
+ max = RSpec::Support::ObjectFormatter.default_instance.max_formatted_output_length
51
+ return text if text.size <= max
52
+
53
+ "#{text[0..max]}...#{text[-max..-1]}"
54
+ end
55
+
49
56
  def size
50
57
  return @element.size if @element.respond_to?(:size)
51
58
 
@@ -93,6 +100,7 @@ module RSpecHTML
93
100
  else
94
101
  where_xpath(tag, query)
95
102
  end
103
+ return nil unless matched || all
96
104
  return matched&.first unless all
97
105
 
98
106
  matched
data/rspec-html.gemspec CHANGED
@@ -37,7 +37,7 @@ Gem::Specification.new do |spec|
37
37
  spec.add_development_dependency 'i18n', '~> 1.7'
38
38
  spec.add_development_dependency 'rake', '~> 13.0'
39
39
  spec.add_development_dependency 'rspec-its', '~> 1.3'
40
- spec.add_development_dependency 'rubocop', '~> 0.89.1'
40
+ spec.add_development_dependency 'rubocop', '~> 0.93.1'
41
41
  spec.add_development_dependency 'rubocop-rspec', '~> 1.36'
42
42
  spec.add_development_dependency 'strong_versions', '~> 0.4.5'
43
43
  end
@@ -1,5 +1,5 @@
1
- <% if actual.element.nil? %>
1
+ <% unless actual.exist? %>
2
2
  Expected <%= actual.reconstituted %> to contain <%= expected.inspect %> but the element did not exist.
3
3
  <% else %>
4
- Expected text in <%= actual.reconstituted %> <%= (actual.text&.strip || '').inspect %> to contain <%= expected.inspect %> but it did not.
4
+ Expected text in <%= actual.reconstituted %> <%= (actual.truncated_text).inspect %> to contain <%= expected.inspect %> but it did not.
5
5
  <% end %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-html
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bob Farrell
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-15 00:00:00.000000000 Z
11
+ date: 2021-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 0.89.1
131
+ version: 0.93.1
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 0.89.1
138
+ version: 0.93.1
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: rubocop-rspec
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -207,7 +207,7 @@ metadata:
207
207
  homepage_uri: https://github.com/bobf/rspec-html
208
208
  source_code_uri: https://github.com/bobf/rspec-html
209
209
  changelog_uri: https://github.com/bobf/rspec-html/blob/master/LICENSE
210
- post_install_message:
210
+ post_install_message:
211
211
  rdoc_options: []
212
212
  require_paths:
213
213
  - lib
@@ -222,8 +222,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
222
222
  - !ruby/object:Gem::Version
223
223
  version: '0'
224
224
  requirements: []
225
- rubygems_version: 3.0.3
226
- signing_key:
225
+ rubygems_version: 3.1.2
226
+ signing_key:
227
227
  specification_version: 4
228
228
  summary: RSpec HTML
229
229
  test_files: []