aboutsummaryrefslogtreecommitdiff
path: root/spec/requests
diff options
context:
space:
mode:
Diffstat (limited to 'spec/requests')
-rw-r--r--spec/requests/api/me/show_spec.cr17
-rw-r--r--spec/requests/api/sign_ins/create_spec.cr33
-rw-r--r--spec/requests/api/sign_ups/create_spec.cr34
3 files changed, 84 insertions, 0 deletions
diff --git a/spec/requests/api/me/show_spec.cr b/spec/requests/api/me/show_spec.cr
new file mode 100644
index 0000000..0e1f91f
--- /dev/null
+++ b/spec/requests/api/me/show_spec.cr
@@ -0,0 +1,17 @@
+require "../../../spec_helper"
+
+describe Api::Me::Show do
+ it "returns the signed in user" do
+ user = UserFactory.create
+
+ response = ApiClient.auth(user).exec(Api::Me::Show)
+
+ response.should send_json(200, email: user.email)
+ end
+
+ it "fails if not authenticated" do
+ response = ApiClient.exec(Api::Me::Show)
+
+ response.status_code.should eq(401)
+ end
+end
diff --git a/spec/requests/api/sign_ins/create_spec.cr b/spec/requests/api/sign_ins/create_spec.cr
new file mode 100644
index 0000000..520c2df
--- /dev/null
+++ b/spec/requests/api/sign_ins/create_spec.cr
@@ -0,0 +1,33 @@
+require "../../../spec_helper"
+
+describe Api::SignIns::Create do
+ it "returns a token" do
+ UserToken.stub_token("fake-token") do
+ user = UserFactory.create
+
+ response = ApiClient.exec(Api::SignIns::Create, user: valid_params(user))
+
+ response.should send_json(200, token: "fake-token")
+ end
+ end
+
+ it "returns an error if credentials are invalid" do
+ user = UserFactory.create
+ invalid_params = valid_params(user).merge(password: "incorrect")
+
+ response = ApiClient.exec(Api::SignIns::Create, user: invalid_params)
+
+ response.should send_json(
+ 400,
+ param: "password",
+ details: "password is wrong"
+ )
+ end
+end
+
+private def valid_params(user : User)
+ {
+ email: user.email,
+ password: "password",
+ }
+end
diff --git a/spec/requests/api/sign_ups/create_spec.cr b/spec/requests/api/sign_ups/create_spec.cr
new file mode 100644
index 0000000..2a23542
--- /dev/null
+++ b/spec/requests/api/sign_ups/create_spec.cr
@@ -0,0 +1,34 @@
+require "../../../spec_helper"
+
+describe Api::SignUps::Create do
+ it "creates user on sign up" do
+ UserToken.stub_token("fake-token") do
+ response = ApiClient.exec(Api::SignUps::Create, user: valid_params)
+
+ response.should send_json(200, token: "fake-token")
+ new_user = UserQuery.first
+ new_user.email.should eq(valid_params[:email])
+ end
+ end
+
+ it "returns error for invalid params" do
+ invalid_params = valid_params.merge(password_confirmation: "wrong")
+
+ response = ApiClient.exec(Api::SignUps::Create, user: invalid_params)
+
+ UserQuery.new.select_count.should eq(0)
+ response.should send_json(
+ 400,
+ param: "password_confirmation",
+ details: "password_confirmation must match"
+ )
+ end
+end
+
+private def valid_params
+ {
+ email: "test@email.com",
+ password: "password",
+ password_confirmation: "password",
+ }
+end