diff options
Diffstat (limited to 'spec/support/flows/authentication_flow.cr')
-rw-r--r-- | spec/support/flows/authentication_flow.cr | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/spec/support/flows/authentication_flow.cr b/spec/support/flows/authentication_flow.cr new file mode 100644 index 0000000..183697f --- /dev/null +++ b/spec/support/flows/authentication_flow.cr @@ -0,0 +1,45 @@ +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 |