diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-03-11 14:57:07 +0200 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-03-11 14:57:07 +0200 |
commit | 519ba6f90a521c3dba05e8582dd245325308d584 (patch) | |
tree | b6e47f2b9c01ad5895b9e67e83c84fd82f7fb3c8 | |
parent | 409404d62dd9d8348a7929c55d5ca48ae8179266 (diff) | |
download | gitlab-shell-519ba6f90a521c3dba05e8582dd245325308d584.tar.gz |
test GitlabKeys exec
-rw-r--r-- | lib/gitlab_keys.rb | 2 | ||||
-rw-r--r-- | spec/gitlab_keys_spec.rb | 54 |
2 files changed, 37 insertions, 19 deletions
diff --git a/lib/gitlab_keys.rb b/lib/gitlab_keys.rb index a7e5a40..756dd96 100644 --- a/lib/gitlab_keys.rb +++ b/lib/gitlab_keys.rb @@ -1,5 +1,7 @@ require 'open3' +require_relative 'gitlab_config' + class GitlabKeys attr_accessor :auth_file, :key diff --git a/spec/gitlab_keys_spec.rb b/spec/gitlab_keys_spec.rb index 0aeebbc..0caaf9b 100644 --- a/spec/gitlab_keys_spec.rb +++ b/spec/gitlab_keys_spec.rb @@ -3,40 +3,56 @@ require_relative '../lib/gitlab_keys' describe GitlabKeys do describe :initialize do - before do - argv('add-key', 'key-741', 'ssh-rsa AAAAB3NzaDAxx2E') - @gl_keys = GitlabKeys.new - end + let(:gitlab_keys) { build_gitlab_keys('add-key', 'key-741', 'ssh-rsa AAAAB3NzaDAxx2E') } - it { @gl_keys.key.should == 'ssh-rsa AAAAB3NzaDAxx2E' } - it { @gl_keys.instance_variable_get(:@command).should == 'add-key' } - it { @gl_keys.instance_variable_get(:@key_id).should == 'key-741' } + it { gitlab_keys.key.should == 'ssh-rsa AAAAB3NzaDAxx2E' } + it { gitlab_keys.instance_variable_get(:@command).should == 'add-key' } + it { gitlab_keys.instance_variable_get(:@key_id).should == 'key-741' } end describe :add_key do - before do - argv('add-key', 'key-741', 'ssh-rsa AAAAB3NzaDAxx2E') - @gl_keys = GitlabKeys.new - end + let(:gitlab_keys) { build_gitlab_keys('add-key', 'key-741', 'ssh-rsa AAAAB3NzaDAxx2E') } it "should receive valid cmd" do valid_cmd = "echo 'command=\"#{ROOT_PATH}/bin/gitlab-shell key-741\",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaDAxx2E' >> #{GitlabConfig.new.auth_file}" - @gl_keys.should_receive(:system).with(valid_cmd) - @gl_keys.send :add_key + gitlab_keys.should_receive(:system).with(valid_cmd) + gitlab_keys.send :add_key end end describe :rm_key do - before do - argv('rm-key', 'key-741', 'ssh-rsa AAAAB3NzaDAxx2E') - @gl_keys = GitlabKeys.new - end + let(:gitlab_keys) { build_gitlab_keys('rm-key', 'key-741', 'ssh-rsa AAAAB3NzaDAxx2E') } it "should receive valid cmd" do valid_cmd = "sed -i '/shell key-741/d' #{GitlabConfig.new.auth_file}" - @gl_keys.should_receive(:system).with(valid_cmd) - @gl_keys.send :rm_key + gitlab_keys.should_receive(:system).with(valid_cmd) + gitlab_keys.send :rm_key + end + end + + describe :exec do + it 'add-key arg should execute add_key method' do + gitlab_keys = build_gitlab_keys('add-key') + gitlab_keys.should_receive(:add_key) + gitlab_keys.exec end + + it 'rm-key arg should execute rm_key method' do + gitlab_keys = build_gitlab_keys('rm-key') + gitlab_keys.should_receive(:rm_key) + 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') + gitlab_keys.exec + end + end + + def build_gitlab_keys(*args) + argv(*args) + GitlabKeys.new end def argv(*args) |