46 lines
866 B
Crystal
46 lines
866 B
Crystal
|
class AuthenticationFlow < BaseFlow
|
||
|
private getter email
|
||
|
|
||
|
def initialize(@email : String)
|
||
|
end
|
||
|
|
||
|
def sign_up(password)
|
||
|
visit SignUps::New
|
||
|
fill_form SignUpUser,
|
||
|
email: email,
|
||
|
password: password,
|
||
|
password_confirmation: password
|
||
|
click "@sign-up-button"
|
||
|
end
|
||
|
|
||
|
def sign_out
|
||
|
visit Me::Show
|
||
|
sign_out_button.click
|
||
|
end
|
||
|
|
||
|
def sign_in(password)
|
||
|
visit SignIns::New
|
||
|
fill_form SignInUser,
|
||
|
email: email,
|
||
|
password: password
|
||
|
click "@sign-in-button"
|
||
|
end
|
||
|
|
||
|
def should_be_signed_in
|
||
|
current_page.should have_element("@sign-out-button")
|
||
|
end
|
||
|
|
||
|
def should_have_password_error
|
||
|
current_page.should have_element("body", text: "Password is wrong")
|
||
|
end
|
||
|
|
||
|
private def sign_out_button
|
||
|
el("@sign-out-button")
|
||
|
end
|
||
|
|
||
|
# NOTE: this is a shim for readability
|
||
|
private def current_page
|
||
|
self
|
||
|
end
|
||
|
end
|