1
0
Fork 0
mirror of https://github.com/teamcapybara/capybara.git synced 2022-11-09 12:08:07 -05:00
teamcapybara--capybara/lib/capybara/spec/session/has_link_spec.rb
Sean Doyle c3b601ebc3 Add support for focused: filter
[Follow-up to #2489][], adds support for filtering fields, links, and
buttons based on whether or not they're focused.

[Follow-up to #2489]: https://github.com/teamcapybara/capybara/pull/2489
2021-08-16 17:55:41 -04:00

63 lines
2.1 KiB
Ruby

# frozen_string_literal: true
Capybara::SpecHelper.spec '#has_link?' do
before do
@session.visit('/with_html')
end
it 'should be true if the given link is on the page' do
expect(@session).to have_link('foo')
expect(@session).to have_link('awesome title')
expect(@session).to have_link('A link', href: '/with_simple_html')
expect(@session).to have_link(:'A link', href: :'/with_simple_html')
expect(@session).to have_link('A link', href: %r{/with_simple_html})
end
it 'should be false if the given link is not on the page' do
expect(@session).not_to have_link('monkey')
expect(@session).not_to have_link('A link', href: '/nonexistent-href')
expect(@session).not_to have_link('A link', href: /nonexistent/)
end
context 'with focused:', requires: [:js] do
it 'should be true if the given link is on the page and has focus' do
@session.send_keys(:tab)
expect(@session).to have_link('labore', focused: true)
end
it 'should be false if the given link is on the page and does not have focus' do
expect(@session).to have_link('labore', focused: false)
end
end
end
Capybara::SpecHelper.spec '#has_no_link?' do
before do
@session.visit('/with_html')
end
it 'should be false if the given link is on the page' do
expect(@session).not_to have_no_link('foo')
expect(@session).not_to have_no_link('awesome title')
expect(@session).not_to have_no_link('A link', href: '/with_simple_html')
end
it 'should be true if the given link is not on the page' do
expect(@session).to have_no_link('monkey')
expect(@session).to have_no_link('A link', href: '/nonexistent-href')
expect(@session).to have_no_link('A link', href: %r{/nonexistent-href})
end
context 'with focused:', requires: [:js] do
it 'should be true if the given link is on the page and has focus' do
expect(@session).to have_no_link('labore', focused: true)
end
it 'should be false if the given link is on the page and does not have focus' do
@session.send_keys(:tab)
expect(@session).to have_no_link('labore', focused: false)
end
end
end