summaryrefslogtreecommitdiff
path: root/spec/models
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-07-30 13:35:33 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-07-30 13:35:33 +0300
commit0d715bcd812ca6c99884e117f28a400669aa8e57 (patch)
tree5690fa43c790af40c51441425b9d8be068d4139d /spec/models
parent4f07a6a99cab8f8ae3ad0a786a6cc9a837955c08 (diff)
parent4d373005968b8269a8d2fe56b7776820396127a4 (diff)
downloadgitlab-ce-0d715bcd812ca6c99884e117f28a400669aa8e57.tar.gz
Merge branch 'mr-on-fork' of https://github.com/karlhungus/gitlabhq into karlhungus-mr-on-fork
Conflicts: app/views/projects/commit/show.html.haml app/views/projects/compare/show.html.haml app/views/projects/merge_requests/branch_from.js.haml
Diffstat (limited to 'spec/models')
-rw-r--r--spec/models/commit_spec.rb1
-rw-r--r--spec/models/forked_project_link_spec.rb12
-rw-r--r--spec/models/merge_request_spec.rb39
-rw-r--r--spec/models/note_spec.rb16
-rw-r--r--spec/models/project_spec.rb10
5 files changed, 55 insertions, 23 deletions
diff --git a/spec/models/commit_spec.rb b/spec/models/commit_spec.rb
index ad99d8a390b..b84f24bf3ad 100644
--- a/spec/models/commit_spec.rb
+++ b/spec/models/commit_spec.rb
@@ -3,7 +3,6 @@ require 'spec_helper'
describe Commit do
let(:commit) { create(:project_with_code).repository.commit }
-
describe '#title' do
it "returns no_commit_message when safe_message is blank" do
commit.stub(:safe_message).and_return('')
diff --git a/spec/models/forked_project_link_spec.rb b/spec/models/forked_project_link_spec.rb
index 5f25e2abd23..44b8c6155be 100644
--- a/spec/models/forked_project_link_spec.rb
+++ b/spec/models/forked_project_link_spec.rb
@@ -12,9 +12,9 @@
require 'spec_helper'
describe ForkedProjectLink, "add link on fork" do
- let(:project_from) {create(:project)}
- let(:namespace) {create(:namespace)}
- let(:user) {create(:user, namespace: namespace)}
+ let(:project_from) { create(:project) }
+ let(:namespace) { create(:namespace) }
+ let(:user) { create(:user, namespace: namespace) }
before do
@project_to = fork_project(project_from, user)
@@ -30,9 +30,9 @@ describe ForkedProjectLink, "add link on fork" do
end
describe :forked_from_project do
- let(:forked_project_link) {build(:forked_project_link)}
- let(:project_from) {create(:project)}
- let(:project_to) {create(:project, forked_project_link: forked_project_link)}
+ let(:forked_project_link) { build(:forked_project_link) }
+ let(:project_from) { create(:project) }
+ let(:project_to) { create(:project, forked_project_link: forked_project_link) }
before :each do
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb
index a0a43fbb815..68f3f920e06 100644
--- a/spec/models/merge_request_spec.rb
+++ b/spec/models/merge_request_spec.rb
@@ -41,15 +41,12 @@ describe MergeRequest do
it { should include_module(Issuable) }
end
- describe "#mr_and_commit_notes" do
-
- end
describe "#mr_and_commit_notes" do
let!(:merge_request) { create(:merge_request) }
before do
- merge_request.stub(:commits) { [merge_request.project.repository.commit] }
+ merge_request.stub(:commits) { [merge_request.source_project.repository.commit] }
create(:note, commit_id: merge_request.commits.first.id, noteable_type: 'Commit')
create(:note, noteable: merge_request)
end
@@ -71,4 +68,38 @@ describe MergeRequest do
subject.is_being_reassigned?.should be_false
end
end
+
+ describe '#for_fork?' do
+ it 'returns true if the merge request is for a fork' do
+ subject.source_project = create(:source_project)
+ subject.target_project = create(:target_project)
+
+ subject.for_fork?.should be_true
+ end
+ it 'returns false if is not for a fork' do
+ subject.source_project = create(:source_project)
+ subject.target_project = subject.source_project
+ subject.for_fork?.should be_false
+ end
+ end
+
+ describe '#allow_source_branch_removal?' do
+ it 'should not allow removal when mr is a fork' do
+
+ subject.disallow_source_branch_removal?.should be_true
+ end
+ it 'should not allow removal when the mr is not a fork, but the source branch is the root reference' do
+ subject.target_project = subject.source_project
+ subject.source_branch = subject.source_project.repository.root_ref
+ subject.disallow_source_branch_removal?.should be_true
+ end
+
+ it 'should not disallow removal when the mr is not a fork, and but source branch is not the root reference' do
+ subject.target_project = subject.source_project
+ subject.source_branch = "Something Different #{subject.source_project.repository.root_ref}"
+ subject.for_fork?.should be_false
+ subject.disallow_source_branch_removal?.should be_false
+ end
+ end
+
end
diff --git a/spec/models/note_spec.rb b/spec/models/note_spec.rb
index ba94f940dc8..0f3af588457 100644
--- a/spec/models/note_spec.rb
+++ b/spec/models/note_spec.rb
@@ -144,12 +144,12 @@ describe Note do
end
describe '#create_status_change_note' do
- let(:project) { create(:project) }
- let(:thing) { create(:issue, project: project) }
- let(:author) { create(:user) }
- let(:status) { 'new_status' }
+ let(:project) { create(:project) }
+ let(:thing) { create(:issue, project: project) }
+ let(:author) { create(:user) }
+ let(:status) { 'new_status' }
- subject { Note.create_status_change_note(thing, author, status) }
+ subject { Note.create_status_change_note(thing, project, author, status) }
it 'creates and saves a Note' do
should be_a Note
@@ -157,9 +157,9 @@ describe Note do
end
its(:noteable) { should == thing }
- its(:project) { should == thing.project }
- its(:author) { should == author }
- its(:note) { should =~ /Status changed to #{status}/ }
+ its(:project) { should == thing.project }
+ its(:author) { should == author }
+ its(:note) { should =~ /Status changed to #{status}/ }
end
describe :authorization do
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 65b951c9619..65acf0c2498 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -26,6 +26,9 @@
require 'spec_helper'
describe Project do
+ before(:each) { enable_observers }
+ after(:each) { disable_observers }
+
describe "Associations" do
it { should belong_to(:group) }
it { should belong_to(:namespace) }
@@ -95,12 +98,11 @@ describe Project do
end
describe "last_activity methods" do
- before { enable_observers }
- let(:project) { create(:project) }
+ let(:project) { create(:project) }
let(:last_event) { double(created_at: Time.now) }
describe "last_activity" do
- it "should alias last_activity to last_event"do
+ it "should alias last_activity to last_event" do
project.stub(last_event: last_event)
project.last_activity.should == last_event
end
@@ -122,7 +124,7 @@ describe Project do
let(:project) { create(:project_with_code) }
before do
- @merge_request = create(:merge_request, project: project)
+ @merge_request = create(:merge_request, source_project: project, target_project: project)
@key = create(:key, user_id: project.owner.id)
end