rspec-html-matchers 0.7.0 → 0.10.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 +5 -5
- data/CHANGELOG.md +79 -12
- data/README.md +63 -57
- data/features/step_definitions/steps.rb +3 -1
- data/features/support/env.rb +22 -3
- data/lib/rspec-html-matchers/have_tag.rb +290 -0
- data/lib/rspec-html-matchers/nokogiri_regexp_helper.rb +17 -0
- data/lib/rspec-html-matchers/nokogiri_text_helper.rb +24 -0
- data/lib/rspec-html-matchers/version.rb +5 -0
- data/lib/rspec-html-matchers.rb +167 -331
- data/spec/form_matchers_spec.rb +132 -130
- data/spec/have_empty_tag_spec.rb +31 -0
- data/spec/have_tag_spec.rb +281 -167
- data/spec/issues_spec.rb +17 -0
- data/spec/spec_helper.rb +5 -4
- data/spec/support/asset_helpers.rb +5 -5
- data/spec/support/raise_spec_error_helper.rb +9 -7
- metadata +74 -36
data/spec/issues_spec.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'spec_helper'
|
5
|
+
|
6
|
+
describe 'working on github issues' do
|
7
|
+
it '[seen Option Not Matching Seen Text (https://github.com/kucaahbe/rspec-html-matchers/issues/73)]' do
|
8
|
+
rendered = <<HTML
|
9
|
+
<p>
|
10
|
+
content with ignored
|
11
|
+
spaces
|
12
|
+
around
|
13
|
+
</p>
|
14
|
+
HTML
|
15
|
+
expect(rendered).to have_tag('p', :seen => 'content with ignored spaces around')
|
16
|
+
end
|
17
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,23 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
if defined?(SimpleCov)
|
2
4
|
SimpleCov.start do
|
3
5
|
add_group 'Main', '/lib/'
|
4
|
-
add_filter
|
6
|
+
add_filter '/spec/'
|
5
7
|
end
|
6
8
|
end
|
7
9
|
|
8
10
|
require 'rspec-html-matchers'
|
9
11
|
|
10
|
-
Dir[File.expand_path(
|
12
|
+
Dir[File.expand_path('../../spec/support/**/*.rb', __FILE__)].each { |f| require f }
|
11
13
|
|
12
14
|
RSpec.configure do |config|
|
13
|
-
|
14
15
|
config.include RSpecHtmlMatchers
|
15
16
|
|
16
17
|
config.expect_with :rspec do |c|
|
17
18
|
c.syntax = :expect
|
18
19
|
end
|
19
20
|
|
20
|
-
config.filter_run_excluding wip
|
21
|
+
config.filter_run_excluding :wip => true
|
21
22
|
|
22
23
|
config.extend AssetHelpers
|
23
24
|
end
|
@@ -1,16 +1,16 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
module AssetHelpers
|
4
|
+
ASSETS = File.expand_path('../../fixtures/%s.html', __FILE__)
|
4
5
|
|
5
6
|
def asset name
|
6
|
-
f = fixtures[name] ||= IO.read(ASSETS%name)
|
7
|
+
f = fixtures[name] ||= IO.read(ASSETS % name)
|
7
8
|
let(:rendered) { f }
|
8
9
|
end
|
9
10
|
|
10
11
|
private
|
11
12
|
|
12
13
|
def fixtures
|
13
|
-
@
|
14
|
+
@fixtures ||= {}
|
14
15
|
end
|
15
|
-
|
16
16
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
RSpec::Matchers.define :raise_spec_error do |expected_exception_msg|
|
2
4
|
define_method :actual_msg do
|
3
5
|
@actual_msg
|
@@ -8,11 +10,11 @@ RSpec::Matchers.define :raise_spec_error do |expected_exception_msg|
|
|
8
10
|
end
|
9
11
|
|
10
12
|
match do |block|
|
11
|
-
begin
|
13
|
+
begin # rubocop:disable Style/RedundantBegin
|
12
14
|
block.call
|
13
15
|
false
|
14
|
-
rescue RSpec::Expectations::ExpectationNotMetError =>
|
15
|
-
@actual_msg =
|
16
|
+
rescue RSpec::Expectations::ExpectationNotMetError => e
|
17
|
+
@actual_msg = e.message
|
16
18
|
|
17
19
|
case expected_exception_msg
|
18
20
|
when String
|
@@ -28,9 +30,9 @@ RSpec::Matchers.define :raise_spec_error do |expected_exception_msg|
|
|
28
30
|
|
29
31
|
supports_block_expectations
|
30
32
|
|
31
|
-
failure_message do |
|
33
|
+
failure_message do |_block|
|
32
34
|
if actual_msg
|
33
|
-
<<MSG
|
35
|
+
<<MSG # rubocop:disable Layout/IndentationWidth
|
34
36
|
expected RSpec::Expectations::ExpectationNotMetError with message:
|
35
37
|
#{expected_exception_msg}
|
36
38
|
|
@@ -38,12 +40,12 @@ got:
|
|
38
40
|
#{actual_msg}
|
39
41
|
|
40
42
|
Diff:
|
41
|
-
#{RSpec::
|
43
|
+
#{RSpec::Support::Differ.new.diff_as_string(actual_msg, expected_exception_msg.to_s)}
|
42
44
|
MSG
|
43
45
|
elsif catched_exception
|
44
46
|
"expected RSpec::Expectations::ExpectationNotMetError, but was #{catched_exception.inspect}"
|
45
47
|
else
|
46
|
-
|
48
|
+
'expected RSpec::Expectations::ExpectationNotMetError, but was no exception'
|
47
49
|
end
|
48
50
|
end
|
49
51
|
end
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-html-matchers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kucaahbe
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 3.0.0.a
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 3.0.0.a
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: nokogiri
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,21 +39,35 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: cucumber
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '1'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: capybara
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: sinatra
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
73
|
- - "~>"
|
@@ -67,47 +81,47 @@ dependencies:
|
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '1'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
84
|
+
name: selenium-webdriver
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
87
|
- - "~>"
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
89
|
+
version: '3'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
94
|
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
96
|
+
version: '3'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
98
|
+
name: webdrivers
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
101
|
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
103
|
+
version: '4'
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
108
|
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
110
|
+
version: '4'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
112
|
+
name: simplecov
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
115
|
- - "~>"
|
102
116
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
117
|
+
version: '0'
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
122
|
- - "~>"
|
109
123
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
124
|
+
version: '0'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: rake
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,23 +137,40 @@ dependencies:
|
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: '10'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
140
|
+
name: yard
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
|
-
- - "
|
143
|
+
- - ">="
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
145
|
+
version: '0'
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
|
-
- - "
|
150
|
+
- - ">="
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
139
|
-
|
140
|
-
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rubocop
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - '='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 0.76.0
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - '='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 0.76.0
|
167
|
+
description: 'Nokogiri based ''have_tag'' and ''with_tag'' matchers for RSpec. Does
|
168
|
+
not depend on assert_select matcher, provides useful error messages.
|
169
|
+
|
170
|
+
'
|
141
171
|
email:
|
142
172
|
- kucaahbe@ukr.net
|
173
|
+
- randoum@gmail.com
|
143
174
|
executables: []
|
144
175
|
extensions: []
|
145
176
|
extra_rdoc_files:
|
@@ -152,16 +183,22 @@ files:
|
|
152
183
|
- features/step_definitions/steps.rb
|
153
184
|
- features/support/env.rb
|
154
185
|
- lib/rspec-html-matchers.rb
|
186
|
+
- lib/rspec-html-matchers/have_tag.rb
|
187
|
+
- lib/rspec-html-matchers/nokogiri_regexp_helper.rb
|
188
|
+
- lib/rspec-html-matchers/nokogiri_text_helper.rb
|
189
|
+
- lib/rspec-html-matchers/version.rb
|
155
190
|
- spec/form_matchers_spec.rb
|
191
|
+
- spec/have_empty_tag_spec.rb
|
156
192
|
- spec/have_tag_spec.rb
|
193
|
+
- spec/issues_spec.rb
|
157
194
|
- spec/spec_helper.rb
|
158
195
|
- spec/support/asset_helpers.rb
|
159
196
|
- spec/support/raise_spec_error_helper.rb
|
160
|
-
homepage:
|
197
|
+
homepage: https://github.com/kucaahbe/rspec-html-matchers
|
161
198
|
licenses:
|
162
199
|
- MIT
|
163
200
|
metadata: {}
|
164
|
-
post_install_message:
|
201
|
+
post_install_message:
|
165
202
|
rdoc_options: []
|
166
203
|
require_paths:
|
167
204
|
- lib
|
@@ -169,24 +206,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
169
206
|
requirements:
|
170
207
|
- - ">="
|
171
208
|
- !ruby/object:Gem::Version
|
172
|
-
version:
|
209
|
+
version: 1.8.7
|
173
210
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
211
|
requirements:
|
175
212
|
- - ">="
|
176
213
|
- !ruby/object:Gem::Version
|
177
214
|
version: '0'
|
178
215
|
requirements: []
|
179
|
-
|
180
|
-
|
181
|
-
signing_key:
|
216
|
+
rubygems_version: 3.3.7
|
217
|
+
signing_key:
|
182
218
|
specification_version: 4
|
183
|
-
summary: Nokogiri based 'have_tag' and 'with_tag' matchers for
|
219
|
+
summary: Nokogiri based 'have_tag' and 'with_tag' matchers for RSpec
|
184
220
|
test_files:
|
221
|
+
- spec/form_matchers_spec.rb
|
222
|
+
- spec/have_empty_tag_spec.rb
|
185
223
|
- spec/have_tag_spec.rb
|
224
|
+
- spec/issues_spec.rb
|
225
|
+
- spec/spec_helper.rb
|
186
226
|
- spec/support/asset_helpers.rb
|
187
227
|
- spec/support/raise_spec_error_helper.rb
|
188
|
-
- spec/form_matchers_spec.rb
|
189
|
-
- spec/spec_helper.rb
|
190
228
|
- features/step_definitions/steps.rb
|
191
229
|
- features/support/env.rb
|
192
230
|
- features/js_generated_content.feature
|