From d50446088c05409604f8daad0879a23b3c5f5e8f Mon Sep 17 00:00:00 2001 From: Robb Kidd Date: Thu, 10 May 2012 22:43:12 +0000 Subject: [PATCH] Add spec for ProtectedBranch. --- spec/models/protected_branch_spec.rb | 48 +++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/spec/models/protected_branch_spec.rb b/spec/models/protected_branch_spec.rb index a0b0032a..ce79f674 100644 --- a/spec/models/protected_branch_spec.rb +++ b/spec/models/protected_branch_spec.rb @@ -12,5 +12,51 @@ require 'spec_helper' describe ProtectedBranch do - pending "add some examples to (or delete) #{__FILE__}" + let(:project) { Factory(:project) } + + describe 'Associations' do + it { should belong_to(:project) } + end + + describe 'Validation' do + it { should validate_presence_of(:project_id) } + it { should validate_presence_of(:name) } + end + + describe 'Callbacks' do + subject { ProtectedBranch.new(:project => project, :name => 'branch_name') } + + it 'call update_repository after save' do + subject.should_receive(:update_repository) + subject.save + end + + it 'call update_repository after destroy' do + subject.should_receive(:update_repository) + subject.destroy + end + end + + describe '#update_repository' do + let(:gitolite) { mock } + + subject { ProtectedBranch.new(:project => project) } + + it "updates the branch's project repo permissions" do + Gitlabhq::GitHost.should_receive(:system).and_return(gitolite) + gitolite.should_receive(:update_project).with(project.path, project) + + subject.update_repository + end + end + + describe '#commit' do + subject { ProtectedBranch.new(:project => project, :name => 'cant_touch_this') } + + it 'commits itself to its project' do + project.should_receive(:commit).with('cant_touch_this') + + subject.commit + end + end end