MinervaNeue/tests/browser/features/step_definitions/talk_steps.rb

55 lines
1.8 KiB
Ruby

When(/^I click the talk button$/) do
on(ArticlePage) do |page|
page.wait_until_rl_module_ready('skins.minerva.talk')
page.talk_element.when_present.click
end
end
When(/^no topic is present$/) do
expect(on(ArticlePage).talk_overlay_content_header_element.when_present.text).to match 'There are no conversations about this page.'
end
When(/^I add a topic called "(.+)"$/) do |topic|
step 'I click the add discussion button'
on(ArticlePage) do |page|
page.talk_overlay_summary = topic
page.talk_overlay_wikitext_editor = 'Topic body is a really long text.'
page.wait_until { page.talk_overlay_save_button_element.enabled? }
page.talk_overlay_save_button
end
end
When(/^I see the talk overlay$/) do
on(ArticlePage).overlay_element.when_visible
end
When(/^I click the add discussion button$/) do
on(ArticlePage).talkadd_element.when_present.click
end
Then(/^I should see the topic called "(.+)" in the list of topics$/) do |topic|
# Timeout is high as the previous action hits the API which may take some time
expect(on(ArticlePage).talk_overlay_first_topic_title_element.when_present(20).text).to match topic
end
Then(/^I should see the talk overlay$/) do
on(ArticlePage) do |page|
page.wait_until_rl_module_ready('mobile.talk.overlays')
expect(on(ArticlePage).overlay_heading_element.when_present.text).to match 'Talk'
end
end
Then(/^there should be no talk button$/) do
expect(on(ArticlePage).talk_element).not_to be_visible
end
Then(/^there should be an add discussion button$/) do
# give overlay time to fully load
expect(on(ArticlePage).talkadd_element.when_present(10)).to be_visible
end
Then(/^there should be a save discussion button$/) do
# give overlay time to fully load
expect(on(ArticlePage).talktopic_save_element.when_present(10)).to be_visible
end