blob: 98848ae0702479ace20035d523f4db68ecc0a930 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
require 'spec_helper'
require 'gitlab_access'
describe GitlabAccess do
let(:repository_path) { "/home/git/repositories" }
let(:repo_name) { 'dzaporozhets/gitlab-ci' }
let(:repo_path) { File.join(repository_path, repo_name) + ".git" }
let(:api) do
double(GitlabNet).tap do |api|
api.stub(check_access: GitAccessStatus.new(true, 'ok', '/home/git/repositories'))
end
end
subject do
GitlabAccess.new(repo_path, 'key-123', 'wow').tap do |access|
access.stub(exec_cmd: :exec_called)
access.stub(api: api)
end
end
before do
GitlabConfig.any_instance.stub(repos_path: repository_path)
end
describe :initialize do
it { subject.repo_name.should == repo_name }
it { subject.repo_path.should == repo_path }
it { subject.changes.should == ['wow'] }
end
describe "#exec" do
context "access is granted" do
it "returns true" do
expect(subject.exec).to be_true
end
end
context "access is denied" do
before do
api.stub(check_access: GitAccessStatus.new(false, 'denied', nil))
end
it "returns false" do
expect(subject.exec).to be_false
end
end
context "API connection fails" do
before do
api.stub(:check_access).and_raise(GitlabNet::ApiUnreachableError)
end
it "returns false" do
expect(subject.exec).to be_false
end
end
end
end
|