aboutsummaryrefslogtreecommitdiff
path: root/spec/support/flows/authentication_flow.cr
diff options
context:
space:
mode:
authorfloppydiskette <floppydisk@hyprcat.net>2024-09-13 12:58:12 +0100
committerfloppydiskette <floppydisk@hyprcat.net>2024-09-13 12:59:16 +0100
commit2c3400fb4f5a22951d42f286975201bf817d7883 (patch)
treea08b06f5f6d5df4f6774da7645d85418609a4cf2 /spec/support/flows/authentication_flow.cr
parentd8915dcca4d9752f6f254e86afa39ef7f83617d1 (diff)
wronglucky
Diffstat (limited to 'spec/support/flows/authentication_flow.cr')
-rw-r--r--spec/support/flows/authentication_flow.cr45
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