mirror of
https://github.com/teamcapybara/capybara.git
synced 2022-11-09 12:08:07 -05:00
c3b601ebc3
[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
63 lines
2.1 KiB
Ruby
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
|