summaryrefslogtreecommitdiff
path: root/spec/gitlab_keys_spec.rb
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2016-08-03 19:22:46 +0000
committerDouwe Maan <douwe@gitlab.com>2016-08-03 19:22:46 +0000
commit4a9d52652a0081bb572075e8cc7c587db956099e (patch)
tree5926eb9bff5426afcdeb350d500bdf3895cc145f /spec/gitlab_keys_spec.rb
parenta7d2fed0a64ec6271cced4dffe24021907e8ccd7 (diff)
parent784221bdb261c5edf9449f10e69ed8ebb5c98c03 (diff)
downloadgitlab-shell-4a9d52652a0081bb572075e8cc7c587db956099e.tar.gz
Merge branch 'authorized-keys-permission-check' into 'master'
Improve authorized_keys check The old check only looked if authorized_keys exists. With this change, we look whether we can actually open the file for reading and writing. When this fails we try to print useful diagnostic information. See merge request !79
Diffstat (limited to 'spec/gitlab_keys_spec.rb')
-rw-r--r--spec/gitlab_keys_spec.rb21
1 files changed, 20 insertions, 1 deletions
diff --git a/spec/gitlab_keys_spec.rb b/spec/gitlab_keys_spec.rb
index 5afa467..d761cc4 100644
--- a/spec/gitlab_keys_spec.rb
+++ b/spec/gitlab_keys_spec.rb
@@ -15,7 +15,6 @@ describe GitlabKeys do
it { gitlab_keys.instance_variable_get(:@key_id).should == 'key-741' }
end
-
describe :add_key do
let(:gitlab_keys) { build_gitlab_keys('add-key', 'key-741', 'ssh-rsa AAAAB3NzaDAxx2E') }
@@ -145,6 +144,20 @@ describe GitlabKeys do
end
end
+ describe :check_permissions do
+ let(:gitlab_keys) { build_gitlab_keys('check-permissions') }
+
+ it 'returns true when the file can be opened' do
+ create_authorized_keys_fixture
+ expect(gitlab_keys.exec).to eq(true)
+ end
+
+ it 'returns false if opening raises an exception' do
+ gitlab_keys.should_receive(:open_auth_file).and_raise("imaginary error")
+ expect(gitlab_keys.exec).to eq(false)
+ end
+ end
+
describe :exec do
it 'add-key arg should execute add_key method' do
gitlab_keys = build_gitlab_keys('add-key')
@@ -170,6 +183,12 @@ describe GitlabKeys do
gitlab_keys.exec
end
+ it 'check-permissions arg should execute check_permissions method' do
+ gitlab_keys = build_gitlab_keys('check-permissions')
+ gitlab_keys.should_receive(:check_permissions)
+ gitlab_keys.exec
+ end
+
it 'should puts message if unknown command arg' do
gitlab_keys = build_gitlab_keys('change-key')
gitlab_keys.should_receive(:puts).with('not allowed')