diff options
Diffstat (limited to 'spec/gitlab_keys_spec.rb')
-rw-r--r-- | spec/gitlab_keys_spec.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/spec/gitlab_keys_spec.rb b/spec/gitlab_keys_spec.rb new file mode 100644 index 0000000..620b7b9 --- /dev/null +++ b/spec/gitlab_keys_spec.rb @@ -0,0 +1,47 @@ +require_relative 'spec_helper' +require_relative '../lib/gitlab_keys' + +describe GitlabKeys do + describe :initialize do + before do + argv('add-key', 'dzaporozhets', 'ssh-rsa AAAAB3NzaDAxx2E') + @gl_keys = GitlabKeys.new + end + + it { @gl_keys.username.should == 'dzaporozhets' } + it { @gl_keys.key.should == 'ssh-rsa AAAAB3NzaDAxx2E' } + it { @gl_keys.instance_variable_get(:@command).should == 'add-key' } + end + + describe :add_key do + before do + argv('add-key', 'dzaporozhets', 'ssh-rsa AAAAB3NzaDAxx2E') + @gl_keys = GitlabKeys.new + end + + it "should receive valid cmd" do + valid_cmd = "echo 'command=\"/home/git/gitlab-shell/spec/../bin/gitlab-shell dzaporozhets\",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaDAxx2E' >> /home/git/.ssh/authorized_keys" + @gl_keys.should_receive(:system).with(valid_cmd) + @gl_keys.send :add_key + end + end + + describe :rm_key do + before do + argv('rm-key', 'dzaporozhets', 'ssh-rsa AAAAB3NzaDAxx2E') + @gl_keys = GitlabKeys.new + end + + it "should receive valid cmd" do + valid_cmd = "sed '/ssh-rsa AAAAB3NzaDAxx2E/d' /home/git/.ssh/authorized_keys" + @gl_keys.should_receive(:system).with(valid_cmd) + @gl_keys.send :rm_key + end + end + + def argv(*args) + args.each_with_index do |arg, i| + ARGV[i] = arg + end + end +end |