summaryrefslogtreecommitdiff
path: root/spec/requests/api/session_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/requests/api/session_spec.rb')
-rw-r--r--spec/requests/api/session_spec.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/spec/requests/api/session_spec.rb b/spec/requests/api/session_spec.rb
new file mode 100644
index 00000000000..0809475be81
--- /dev/null
+++ b/spec/requests/api/session_spec.rb
@@ -0,0 +1,39 @@
+require 'spec_helper'
+
+describe Gitlab::API do
+ include ApiHelpers
+
+ let(:user) { Factory :user }
+
+ describe "POST /session" do
+ context "when valid password" do
+ it "should return private token" do
+ post api("/session"), email: user.email, password: '123456'
+ response.status.should == 201
+
+ json_response['email'].should == user.email
+ json_response['private_token'].should == user.private_token
+ end
+ end
+
+ context "when invalid password" do
+ it "should return authentication error" do
+ post api("/session"), email: user.email, password: '123'
+ response.status.should == 403
+
+ json_response['email'].should be_nil
+ json_response['private_token'].should be_nil
+ end
+ end
+
+ context "when empty password" do
+ it "should return authentication error" do
+ post api("/session"), email: user.email
+ response.status.should == 403
+
+ json_response['email'].should be_nil
+ json_response['private_token'].should be_nil
+ end
+ end
+ end
+end