Use Capybara methods to find/click/check links
We applied the Capybara/SpecificMatcher in commit f52a86b46. However,
this rule doesn't convert methods finding <a> tags to methods finding
links because <a> tags only count as links when they've got the `href`
attribute. For instance, in the `xss_spec.rb` file we check what happens
when clicking on an anchor tag because we're testing that the `href`
attribute has been removed and so we can't use `click_link`.
So, basically, we can't enable a rule to automatically detect when we're
using `have_css` instead of `have_link`, but we should still do it
because `have_link` adds an extra check which affects accessibility
since it makes sure the tag has the `href` attribute and so it's
recognizable as a link by screen readers.
This commit is contained in:
@@ -7,7 +7,7 @@ describe Admin::TableActionsComponent, :admin do
|
||||
render_inline Admin::TableActionsComponent.new(record)
|
||||
|
||||
expect(page).to have_link count: 1
|
||||
expect(page).to have_css "a[href*='edit']", exact_text: "Edit"
|
||||
expect(page).to have_link "Edit", href: /edit/
|
||||
expect(page).to have_css "a[aria-label='Edit Important!']"
|
||||
|
||||
expect(page).to have_button count: 1
|
||||
@@ -56,7 +56,7 @@ describe Admin::TableActionsComponent, :admin do
|
||||
it "allows custom options" do
|
||||
render_inline Admin::TableActionsComponent.new(record, edit_options: { id: "edit_me" })
|
||||
|
||||
expect(page).to have_css "a#edit_me"
|
||||
expect(page).to have_link id: "edit_me"
|
||||
end
|
||||
|
||||
it "allows custom content" do
|
||||
@@ -64,7 +64,7 @@ describe Admin::TableActionsComponent, :admin do
|
||||
"<a href='/'>Main</a>".html_safe
|
||||
end
|
||||
|
||||
expect(page).to have_css "a", count: 2
|
||||
expect(page).to have_link count: 2
|
||||
expect(page).to have_link "Main", href: "/"
|
||||
expect(page).to have_link "Edit"
|
||||
|
||||
@@ -77,7 +77,7 @@ describe Admin::TableActionsComponent, :admin do
|
||||
render_inline Admin::TableActionsComponent.new(create(:sdg_local_target))
|
||||
|
||||
expect(page).to have_link count: 1
|
||||
expect(page).to have_css "a[href^='/sdg_management/'][href*='edit']", exact_text: "Edit"
|
||||
expect(page).to have_link "Edit", href: /\A\/sdg_management\/(.+)edit/
|
||||
|
||||
expect(page).to have_button count: 1
|
||||
expect(page).to have_css "form[action^='/sdg_management/']", exact_text: "Delete"
|
||||
|
||||
Reference in New Issue
Block a user