Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/requests/api/users_spec.rb')
-rw-r--r--spec/requests/api/users_spec.rb67
1 files changed, 66 insertions, 1 deletions
diff --git a/spec/requests/api/users_spec.rb b/spec/requests/api/users_spec.rb
index e25fe1341d5..243f70f5230 100644
--- a/spec/requests/api/users_spec.rb
+++ b/spec/requests/api/users_spec.rb
@@ -3,7 +3,8 @@ require 'spec_helper'
describe Gitlab::API do
include ApiHelpers
- let(:user) { Factory :user }
+ let(:user) { Factory :user }
+ let(:key) { Factory :key, user: user }
describe "GET /users" do
context "when unauthenticated" do
@@ -38,4 +39,68 @@ describe Gitlab::API do
json_response['email'].should == user.email
end
end
+
+ describe "GET /user/keys" do
+ context "when unauthenticated" do
+ it "should return authentication error" do
+ get api("/user/keys")
+ response.status.should == 401
+ end
+ end
+
+ context "when authenticated" do
+ it "should return array of ssh keys" do
+ user.keys << key
+ user.save
+ get api("/user/keys", user)
+ response.status.should == 200
+ json_response.should be_an Array
+ json_response.first["title"].should == key.title
+ end
+ end
+ end
+
+ describe "GET /user/keys/:id" do
+ it "should returm single key" do
+ user.keys << key
+ user.save
+ get api("/user/keys/#{key.id}", user)
+ response.status.should == 200
+ json_response["title"].should == key.title
+ end
+
+ it "should return 404 Not Found within invalid ID" do
+ get api("/user/keys/42", user)
+ response.status.should == 404
+ end
+ end
+
+ describe "POST /user/keys" do
+ it "should not create invalid ssh key" do
+ post api("/user/keys", user), { title: "invalid key" }
+ response.status.should == 404
+ end
+
+ it "should create ssh key" do
+ key_attrs = Factory.attributes :key
+ expect {
+ post api("/user/keys", user), key_attrs
+ }.to change{ user.keys.count }.by(1)
+ end
+ end
+
+ describe "DELETE /user/keys/:id" do
+ it "should delete existed key" do
+ user.keys << key
+ user.save
+ expect {
+ delete api("/user/keys/#{key.id}", user)
+ }.to change{user.keys.count}.by(-1)
+ end
+
+ it "should return 404 Not Found within invalid ID" do
+ delete api("/user/keys/42", user)
+ response.status.should == 404
+ end
+ end
end