Files
grecia/spec/support/common_actions.rb

78 lines
2.1 KiB
Ruby

module CommonActions
def sign_up
visit '/'
click_link 'Sign up'
fill_in 'user_first_name', with: 'Manuela'
fill_in 'user_last_name', with: 'Carmena'
fill_in 'user_email', with: 'manuela@madrid.es'
fill_in 'user_password', with: 'judgementday'
fill_in 'user_password_confirmation', with: 'judgementday'
fill_in 'user_captcha', with: correct_captcha_text
click_button 'Sign up'
end
def reset_password
create(:user, email: 'manuela@madrid.es')
visit '/'
click_link 'Log in'
click_link 'Forgot your password?'
fill_in 'user_email', with: 'manuela@madrid.es'
click_button 'Send me reset password instructions'
end
def comment_on(debate)
user2 = create(:user)
login_as(user2)
visit debate_path(debate)
fill_in 'comment_body', with: 'Have you thought about...?'
click_button 'Publish comment'
expect(page).to have_content 'Have you thought about...?'
end
def reply_to(user)
manuela = create(:user)
debate = create(:debate)
comment = create(:comment, commentable: debate, user: user)
login_as(manuela)
visit debate_path(debate)
click_link "Reply"
within "#js-comment-form-comment_#{comment.id}" do
fill_in 'comment_body', with: 'It will be done next week.'
click_button 'Publish reply'
end
expect(page).to have_content 'It will be done next week.'
end
def correct_captcha_text
SimpleCaptcha::SimpleCaptchaData.first.value
end
def avatar(name)
"img.initialjs-avatar[data-name='#{name}']"
end
# Used to fill ckeditor fields
# @param [String] locator label text for the textarea or textarea id
def fill_in_ckeditor(locator, params = {})
# Find out ckeditor id at runtime using its label
locator = find('label', text: locator)[:for] if page.has_css?('label', text: locator)
# Fill the editor content
page.execute_script <<-SCRIPT
var ckeditor = CKEDITOR.instances.#{locator}
ckeditor.setData('#{params[:with]}')
ckeditor.focus()
ckeditor.updateElement()
SCRIPT
end
end