Allow passing :with argument to :be_rendered

We need it in order to check the rendered content.
This commit is contained in:
taitus
2021-11-03 18:51:09 +01:00
parent 612872ac7a
commit 934ce21871
2 changed files with 16 additions and 6 deletions

View File

@@ -17,9 +17,8 @@ describe Shared::LinkListComponent do
render_inline Shared::LinkListComponent.new(
["Home", "/"], ["Info", "/info"], class: "menu"
)
list = page.find("body").native.inner_html
expect(list).to eq '<ul class="menu">' + "\n" +
expect(page).to be_rendered with: '<ul class="menu">' + "\n" +
'<li><a href="/">Home</a></li>' + "\n" +
'<li><a href="/info">Info</a></li>' + "\n</ul>\n"
end
@@ -28,9 +27,8 @@ describe Shared::LinkListComponent do
render_inline Shared::LinkListComponent.new(
'<a href="/">Home</a>'.html_safe, ["Info", "/info"], class: "menu"
)
list = page.find("body").native.inner_html
expect(list).to eq '<ul class="menu">' + "\n" +
expect(page).to be_rendered with: '<ul class="menu">' + "\n" +
'<li><a href="/">Home</a></li>' + "\n" +
'<li><a href="/info">Info</a></li>' + "\n</ul>\n"
end

View File

@@ -1,6 +1,18 @@
RSpec::Matchers.define :be_rendered do
RSpec::Matchers.define :be_rendered do |with: nil|
match do |page|
!page.native.inner_html.empty?
if with.nil?
!page.native.inner_html.empty?
else
page.has_css?("body") && page.find("body").native.inner_html == with
end
end
failure_message do |page|
if page.has_css?("body")
"expected page to be rendered with #{with}, but was rendered with #{page.find("body").native.inner_html}"
else
"expected page to be rendered with #{with}, but was not rendered"
end
end
failure_message_when_negated do |page|