mediawiki-skins-MinervaNeue/tests/browser/features/step_definitions/common_article_steps.rb

66 lines
2.1 KiB
Ruby
Raw Normal View History

Given(/^I click continue$/) do
on(ArticlePage).continue_button_element.when_present.click
end
Given(/^I click submit$/) do
on(ArticlePage) do |page|
page.spinner_loading_element.when_not_present
page.submit_button_element.when_present.click
end
end
When(/^I click on the history link in the last modified bar$/) do
on(ArticlePage).last_modified_bar_history_link_element.when_present.click
expect(on(SpecialHistoryPage).side_list_element.when_present(10)).to be_visible
end
When(/^I click on the page$/) do
on(ArticlePage).content_wrapper_element.click
end
When(/^I click the unwatch star$/) do
on(ArticlePage).unwatch_star_element.when_present.click
end
When(/^I click the watch star$/) do
on(ArticlePage).watch_star_element.when_present.click
end
Then(/^I should see a toast notification$/) do
# To avoid flakey tests check the notification area element first (T170890)
on(ArticlePage) do |page|
# Minerva loads mediawiki.notify at startup which defers the loading of this module
# We must wait until the lazy loading has happened before checking for the toast (T170890)
page.wait_until_rl_module_ready('mediawiki.notification')
expect(page.notification_area_element.when_present).to be_visible
end
end
Then(/^I should see a toast with message "(.+)"$/) do |msg|
on(ArticlePage) do |page|
page.wait_until_rl_module_ready('mediawiki.notification')
expect(page.toast_element.when_present.text).to match msg
end
end
Then /^I should see a drawer with message "(.+)"$/ do |text|
expect(on(ArticlePage).drawer_element.when_present.text).to match text
end
Then(/^the text of the first heading should be "(.*)"$/) do |title|
on(ArticlePage) do |page|
page.wait_until do
page.first_heading_element.when_present.text.include? title
end
expect(page.first_heading_element.when_present.text).to match title
end
end
Then /^the watch star should be selected$/ do
expect(on(ArticlePage).unwatch_star_element).to be_visible
end
Then /^the watch star should not be selected$/ do
expect(on(ArticlePage).watch_star_element).to be_visible
end