summaryrefslogtreecommitdiff
path: root/spec/gitlab_projects_spec.rb
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-03-11 09:35:33 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-03-11 09:35:33 +0200
commit238fd9b65f243fef552a1e7aa0bf2e3ba6e52b10 (patch)
treebd6cef235825cda977a5f3d096990f2964e8226b /spec/gitlab_projects_spec.rb
parent55818a4f0ca0fb331d7820b35a14dacd27dfd6c2 (diff)
downloadgitlab-shell-238fd9b65f243fef552a1e7aa0bf2e3ba6e52b10.tar.gz
Cover with tests GitlabProjects
Diffstat (limited to 'spec/gitlab_projects_spec.rb')
-rw-r--r--spec/gitlab_projects_spec.rb71
1 files changed, 55 insertions, 16 deletions
diff --git a/spec/gitlab_projects_spec.rb b/spec/gitlab_projects_spec.rb
index 38af894..87c64b7 100644
--- a/spec/gitlab_projects_spec.rb
+++ b/spec/gitlab_projects_spec.rb
@@ -2,31 +2,31 @@ require_relative 'spec_helper'
require_relative '../lib/gitlab_projects'
describe GitlabProjects do
+ before do
+ FileUtils.mkdir_p(tmp_repos_path)
+ end
+
+ after do
+ FileUtils.rm_rf(tmp_repos_path)
+ end
+
describe :initialize do
before do
- argv('add-project', 'gitlab-ci.git')
+ argv('add-project', repo_name)
@gl_projects = GitlabProjects.new
end
- it { @gl_projects.project_name.should == 'gitlab-ci.git' }
+ it { @gl_projects.project_name.should == repo_name }
it { @gl_projects.instance_variable_get(:@command).should == 'add-project' }
it { @gl_projects.instance_variable_get(:@full_path).should == '/home/git/repositories/gitlab-ci.git' }
end
describe :add_project do
- before do
- argv('add-project', 'gitlab-ci.git')
- @gl_projects = GitlabProjects.new
- @gl_projects.stub(full_path: tmp_repo_path)
- end
-
- after do
- FileUtils.rm_rf(tmp_repo_path)
- end
+ let(:gl_projects) { build_gitlab_projects('add-project', repo_name) }
it "should create a directory" do
- @gl_projects.stub(system: true)
- @gl_projects.send :add_project
+ gl_projects.stub(system: true)
+ gl_projects.exec
File.exists?(tmp_repo_path).should be_true
end
@@ -34,18 +34,57 @@ describe GitlabProjects do
valid_cmd = "cd #{tmp_repo_path} && git init --bare"
valid_cmd << " && ln -s #{ROOT_PATH}/hooks/post-receive #{tmp_repo_path}/hooks/post-receive"
valid_cmd << " && ln -s #{ROOT_PATH}/hooks/update #{tmp_repo_path}/hooks/update"
- @gl_projects.should_receive(:system).with(valid_cmd)
- @gl_projects.send :add_project
+ gl_projects.should_receive(:system).with(valid_cmd)
+ gl_projects.exec
end
end
+ describe :rm_project do
+ let(:gl_projects) { build_gitlab_projects('rm-project', repo_name) }
+
+ before do
+ FileUtils.mkdir_p(tmp_repo_path)
+ end
+
+ it "should remove a repo directory" do
+ File.exists?(tmp_repo_path).should be_true
+ gl_projects.exec
+ File.exists?(tmp_repo_path).should be_false
+ end
+ end
+
+ describe :import_project do
+ let(:gl_projects) { build_gitlab_projects('import-project', repo_name, 'https://github.com/randx/six.git') }
+
+ it "should import a repo" do
+ gl_projects.exec
+ File.exists?(File.join(tmp_repo_path, 'HEAD')).should be_true
+ end
+ end
+
+ def build_gitlab_projects(*args)
+ argv(*args)
+ gl_projects = GitlabProjects.new
+ gl_projects.stub(repos_path: tmp_repos_path)
+ gl_projects.stub(full_path: tmp_repo_path)
+ gl_projects
+ end
+
def argv(*args)
args.each_with_index do |arg, i|
ARGV[i] = arg
end
end
+ def tmp_repos_path
+ File.join(ROOT_PATH, 'tmp', 'repositories')
+ end
+
def tmp_repo_path
- File.join(ROOT_PATH, 'tmp', 'gitlab-ci.git')
+ File.join(tmp_repos_path, repo_name)
+ end
+
+ def repo_name
+ 'gitlab-ci.git'
end
end