Commit 77d06454ededc3beef09db709829ccb687ccc045
1 parent
0bc90940
Exists in
master
and in
4 other branches
Simple model spec changes made possible by new factories
Showing
6 changed files
with
37 additions
and
95 deletions
Show diff stats
spec/models/issue_spec.rb
| ... | ... | @@ -19,11 +19,7 @@ describe Issue do |
| 19 | 19 | it { Issue.should respond_to :opened } |
| 20 | 20 | end |
| 21 | 21 | |
| 22 | - subject { Factory.create(:issue, | |
| 23 | - author: Factory(:user), | |
| 24 | - assignee: Factory(:user), | |
| 25 | - project: Factory.create(:project)) } | |
| 26 | - it { should be_valid } | |
| 22 | + subject { Factory.create(:issue) } | |
| 27 | 23 | |
| 28 | 24 | describe '#is_being_reassigned?' do |
| 29 | 25 | it 'returns true if the issue assignee has changed' do |
| ... | ... | @@ -41,11 +37,7 @@ describe Issue do |
| 41 | 37 | subject.is_being_closed?.should be_true |
| 42 | 38 | end |
| 43 | 39 | it 'returns false if the closed attribute has changed and is now false' do |
| 44 | - issue = Factory.create(:issue, | |
| 45 | - closed: true, | |
| 46 | - author: Factory(:user), | |
| 47 | - assignee: Factory(:user), | |
| 48 | - project: Factory.create(:project)) | |
| 40 | + issue = Factory.create(:closed_issue) | |
| 49 | 41 | issue.closed = false |
| 50 | 42 | issue.is_being_closed?.should be_false |
| 51 | 43 | end |
| ... | ... | @@ -57,11 +49,7 @@ describe Issue do |
| 57 | 49 | |
| 58 | 50 | describe '#is_being_reopened?' do |
| 59 | 51 | it 'returns true if the closed attribute has changed and is now false' do |
| 60 | - issue = Factory.create(:issue, | |
| 61 | - closed: true, | |
| 62 | - author: Factory(:user), | |
| 63 | - assignee: Factory(:user), | |
| 64 | - project: Factory.create(:project)) | |
| 52 | + issue = Factory.create(:closed_issue) | |
| 65 | 53 | issue.closed = false |
| 66 | 54 | issue.is_being_reopened?.should be_true |
| 67 | 55 | end |
| ... | ... | @@ -75,40 +63,33 @@ describe Issue do |
| 75 | 63 | end |
| 76 | 64 | |
| 77 | 65 | describe "plus 1" do |
| 78 | - let(:project) { Factory(:project) } | |
| 79 | - subject { | |
| 80 | - Factory.create(:issue, | |
| 81 | - author: Factory(:user), | |
| 82 | - assignee: Factory(:user), | |
| 83 | - project: project) | |
| 84 | - } | |
| 66 | + subject { Factory.create(:issue) } | |
| 85 | 67 | |
| 86 | 68 | it "with no notes has a 0/0 score" do |
| 87 | 69 | subject.upvotes.should == 0 |
| 88 | 70 | end |
| 89 | 71 | |
| 90 | 72 | it "should recognize non-+1 notes" do |
| 91 | - subject.notes << Factory(:note, note: "No +1 here", project: Factory(:project, path: 'plusone', code: 'plusone')) | |
| 73 | + subject.notes << Factory(:note, note: "No +1 here") | |
| 92 | 74 | subject.should have(1).note |
| 93 | 75 | subject.notes.first.upvote?.should be_false |
| 94 | 76 | subject.upvotes.should == 0 |
| 95 | 77 | end |
| 96 | 78 | |
| 97 | 79 | it "should recognize a single +1 note" do |
| 98 | - subject.notes << Factory(:note, note: "+1 This is awesome", project: Factory(:project, path: 'plusone', code: 'plusone')) | |
| 80 | + subject.notes << Factory(:note, note: "+1 This is awesome") | |
| 99 | 81 | subject.upvotes.should == 1 |
| 100 | 82 | end |
| 101 | 83 | |
| 102 | 84 | it "should recognize a multiple +1 notes" do |
| 103 | - subject.notes << Factory(:note, note: "+1 This is awesome", project: Factory(:project, path: 'plusone', code: 'plusone')) | |
| 104 | - subject.notes << Factory(:note, note: "+1 I want this", project: Factory(:project, path: 'plustwo', code: 'plustwo')) | |
| 85 | + subject.notes << Factory(:note, note: "+1 This is awesome") | |
| 86 | + subject.notes << Factory(:note, note: "+1 I want this") | |
| 105 | 87 | subject.upvotes.should == 2 |
| 106 | 88 | end |
| 107 | 89 | end |
| 108 | 90 | |
| 109 | 91 | describe ".search" do |
| 110 | - let!(:issue) { Factory.create(:issue, title: "Searchable issue", | |
| 111 | - project: Factory.create(:project)) } | |
| 92 | + let!(:issue) { Factory.create(:issue, title: "Searchable issue") } | |
| 112 | 93 | |
| 113 | 94 | it "matches by title" do |
| 114 | 95 | Issue.search('able').all.should == [issue] | ... | ... |
spec/models/key_spec.rb
| ... | ... | @@ -17,20 +17,15 @@ describe Key do |
| 17 | 17 | context "validation of uniqueness" do |
| 18 | 18 | |
| 19 | 19 | context "as a deploy key" do |
| 20 | - let(:project) { Factory.create(:project, path: 'alpha', code: 'alpha') } | |
| 21 | - let(:another_project) { Factory.create(:project, path: 'beta', code: 'beta') } | |
| 22 | - | |
| 23 | - before do | |
| 24 | - deploy_key = Factory.create(:key, project: project) | |
| 25 | - end | |
| 20 | + let!(:deploy_key) { create(:deploy_key) } | |
| 26 | 21 | |
| 27 | 22 | it "does not accept the same key twice for a project" do |
| 28 | - key = Factory.new(:key, project: project) | |
| 23 | + key = build(:key, project: deploy_key.project) | |
| 29 | 24 | key.should_not be_valid |
| 30 | 25 | end |
| 31 | 26 | |
| 32 | 27 | it "does accept the same key for another project" do |
| 33 | - key = Factory.new(:key, project: another_project) | |
| 28 | + key = build(:key, project_id: 0) | |
| 34 | 29 | key.should be_valid |
| 35 | 30 | end |
| 36 | 31 | end |
| ... | ... | @@ -39,12 +34,12 @@ describe Key do |
| 39 | 34 | let(:user) { Factory.create(:user) } |
| 40 | 35 | |
| 41 | 36 | it "accepts the key once" do |
| 42 | - Factory.new(:key, user: user).should be_valid | |
| 37 | + build(:key, user: user).should be_valid | |
| 43 | 38 | end |
| 44 | 39 | |
| 45 | 40 | it "does not accepts the key twice" do |
| 46 | - Factory.create(:key, user: user) | |
| 47 | - Factory.new(:key, user: user).should_not be_valid | |
| 41 | + create(:key, user: user) | |
| 42 | + build(:key, user: user).should_not be_valid | |
| 48 | 43 | end |
| 49 | 44 | end |
| 50 | 45 | end | ... | ... |
spec/models/merge_request_spec.rb
| ... | ... | @@ -20,46 +20,34 @@ describe MergeRequest do |
| 20 | 20 | it { MergeRequest.should respond_to :opened } |
| 21 | 21 | end |
| 22 | 22 | |
| 23 | - it { Factory.create(:merge_request, | |
| 24 | - author: Factory(:user), | |
| 25 | - assignee: Factory(:user), | |
| 26 | - project: Factory.create(:project)).should be_valid } | |
| 27 | - | |
| 28 | 23 | describe "plus 1" do |
| 29 | - let(:project) { Factory(:project) } | |
| 30 | - subject { | |
| 31 | - Factory.create(:merge_request, | |
| 32 | - author: Factory(:user), | |
| 33 | - assignee: Factory(:user), | |
| 34 | - project: project) | |
| 35 | - } | |
| 24 | + subject { Factory.create(:merge_request) } | |
| 36 | 25 | |
| 37 | 26 | it "with no notes has a 0/0 score" do |
| 38 | 27 | subject.upvotes.should == 0 |
| 39 | 28 | end |
| 40 | 29 | |
| 41 | 30 | it "should recognize non-+1 notes" do |
| 42 | - subject.notes << Factory(:note, note: "No +1 here", project: Factory(:project, path: 'plusone', code: 'plusone')) | |
| 31 | + subject.notes << Factory(:note, note: "No +1 here") | |
| 43 | 32 | subject.should have(1).note |
| 44 | 33 | subject.notes.first.upvote?.should be_false |
| 45 | 34 | subject.upvotes.should == 0 |
| 46 | 35 | end |
| 47 | 36 | |
| 48 | 37 | it "should recognize a single +1 note" do |
| 49 | - subject.notes << Factory(:note, note: "+1 This is awesome", project: Factory(:project, path: 'plusone', code: 'plusone')) | |
| 38 | + subject.notes << Factory(:note, note: "+1 This is awesome") | |
| 50 | 39 | subject.upvotes.should == 1 |
| 51 | 40 | end |
| 52 | 41 | |
| 53 | 42 | it "should recognize a multiple +1 notes" do |
| 54 | - subject.notes << Factory(:note, note: "+1 This is awesome", project: Factory(:project, path: 'plusone', code: 'plusone')) | |
| 55 | - subject.notes << Factory(:note, note: "+1 I want this", project: Factory(:project, path: 'plustwo', code: 'plustwo')) | |
| 43 | + subject.notes << Factory(:note, note: "+1 This is awesome") | |
| 44 | + subject.notes << Factory(:note, note: "+1 I want this") | |
| 56 | 45 | subject.upvotes.should == 2 |
| 57 | 46 | end |
| 58 | 47 | end |
| 59 | 48 | |
| 60 | 49 | describe ".search" do |
| 61 | - let!(:issue) { Factory.create(:issue, title: "Searchable issue", | |
| 62 | - project: Factory.create(:project)) } | |
| 50 | + let!(:issue) { Factory.create(:issue, title: "Searchable issue") } | |
| 63 | 51 | |
| 64 | 52 | it "matches by title" do |
| 65 | 53 | Issue.search('able').all.should == [issue] | ... | ... |
spec/models/milestone_spec.rb
| ... | ... | @@ -25,11 +25,8 @@ describe Milestone do |
| 25 | 25 | it { should validate_presence_of(:project_id) } |
| 26 | 26 | end |
| 27 | 27 | |
| 28 | - let(:project) { Factory :project } | |
| 29 | - let(:milestone) { Factory :milestone, project: project } | |
| 30 | - let(:issue) { Factory :issue, project: project } | |
| 31 | - | |
| 32 | - it { milestone.should be_valid } | |
| 28 | + let(:milestone) { Factory :milestone } | |
| 29 | + let(:issue) { Factory :issue } | |
| 33 | 30 | |
| 34 | 31 | describe "#percent_complete" do |
| 35 | 32 | it "should not count open issues" do | ... | ... |
spec/models/note_spec.rb
| 1 | 1 | require 'spec_helper' |
| 2 | 2 | |
| 3 | 3 | describe Note do |
| 4 | - let(:project) { Factory :project } | |
| 5 | - let!(:commit) { project.commit } | |
| 6 | - | |
| 7 | 4 | describe "Associations" do |
| 8 | 5 | it { should belong_to(:project) } |
| 9 | 6 | end |
| ... | ... | @@ -13,8 +10,6 @@ describe Note do |
| 13 | 10 | it { should validate_presence_of(:project) } |
| 14 | 11 | end |
| 15 | 12 | |
| 16 | - it { Factory.create(:note, | |
| 17 | - project: project).should be_valid } | |
| 18 | 13 | describe "Scopes" do |
| 19 | 14 | it "should have a today named scope that returns ..." do |
| 20 | 15 | Note.today.where_values.should == ["created_at >= '#{Date.today}'"] |
| ... | ... | @@ -25,26 +20,27 @@ describe Note do |
| 25 | 20 | let(:project) { Factory(:project) } |
| 26 | 21 | |
| 27 | 22 | it "recognizes a neutral note" do |
| 28 | - note = Factory(:note, project: project, note: "This is not a +1 note") | |
| 23 | + note = Factory(:note, note: "This is not a +1 note") | |
| 29 | 24 | note.should_not be_upvote |
| 30 | 25 | end |
| 31 | 26 | |
| 32 | 27 | it "recognizes a +1 note" do |
| 33 | - note = Factory(:note, project: project, note: "+1 for this") | |
| 28 | + note = Factory(:note, note: "+1 for this") | |
| 34 | 29 | note.should be_upvote |
| 35 | 30 | end |
| 36 | 31 | |
| 37 | 32 | it "recognizes a -1 note as no vote" do |
| 38 | - note = Factory(:note, project: project, note: "-1 for this") | |
| 33 | + note = Factory(:note, note: "-1 for this") | |
| 39 | 34 | note.should_not be_upvote |
| 40 | 35 | end |
| 41 | 36 | end |
| 42 | 37 | |
| 43 | - describe "Commit notes" do | |
| 38 | + let(:project) { create(:project) } | |
| 39 | + let(:commit) { project.commit } | |
| 44 | 40 | |
| 41 | + describe "Commit notes" do | |
| 45 | 42 | before do |
| 46 | 43 | @note = Factory :note, |
| 47 | - project: project, | |
| 48 | 44 | noteable_id: commit.id, |
| 49 | 45 | noteable_type: "Commit" |
| 50 | 46 | end |
| ... | ... | @@ -58,7 +54,6 @@ describe Note do |
| 58 | 54 | describe "Pre-line commit notes" do |
| 59 | 55 | before do |
| 60 | 56 | @note = Factory :note, |
| 61 | - project: project, | |
| 62 | 57 | noteable_id: commit.id, |
| 63 | 58 | noteable_type: "Commit", |
| 64 | 59 | line_code: "0_16_1" |
| ... | ... | @@ -91,8 +86,8 @@ describe Note do |
| 91 | 86 | |
| 92 | 87 | describe :authorization do |
| 93 | 88 | before do |
| 94 | - @p1 = project | |
| 95 | - @p2 = Factory :project, code: "alien", path: "gitlabhq_1" | |
| 89 | + @p1 = create(:project) | |
| 90 | + @p2 = Factory :project | |
| 96 | 91 | @u1 = Factory :user |
| 97 | 92 | @u2 = Factory :user |
| 98 | 93 | @u3 = Factory :user | ... | ... |
spec/models/user_spec.rb
| ... | ... | @@ -3,11 +3,12 @@ require 'spec_helper' |
| 3 | 3 | describe User do |
| 4 | 4 | describe "Associations" do |
| 5 | 5 | it { should have_many(:projects) } |
| 6 | - it { should have_many(:users_projects) } | |
| 7 | - it { should have_many(:issues) } | |
| 8 | - it { should have_many(:assigned_issues) } | |
| 9 | - it { should have_many(:merge_requests) } | |
| 10 | - it { should have_many(:assigned_merge_requests) } | |
| 6 | + it { should have_many(:users_projects).dependent(:destroy) } | |
| 7 | + it { should have_many(:issues).dependent(:destroy) } | |
| 8 | + it { should have_many(:assigned_issues).dependent(:destroy) } | |
| 9 | + it { should have_many(:merge_requests).dependent(:destroy) } | |
| 10 | + it { should have_many(:assigned_merge_requests).dependent(:destroy) } | |
| 11 | + it { should have_many(:notes).dependent(:destroy) } | |
| 11 | 12 | end |
| 12 | 13 | |
| 13 | 14 | describe "Respond to" do |
| ... | ... | @@ -49,21 +50,6 @@ describe User do |
| 49 | 50 | user = Factory(:user) |
| 50 | 51 | user.authentication_token.should_not == "" |
| 51 | 52 | end |
| 52 | - | |
| 53 | - describe "dependent" do | |
| 54 | - before do | |
| 55 | - @user = Factory :user | |
| 56 | - @note = Factory :note, | |
| 57 | - author: @user, | |
| 58 | - project: Factory(:project) | |
| 59 | - end | |
| 60 | - | |
| 61 | - it "should destroy all notes with user" do | |
| 62 | - Note.find_by_id(@note.id).should_not be_nil | |
| 63 | - @user.destroy | |
| 64 | - Note.find_by_id(@note.id).should be_nil | |
| 65 | - end | |
| 66 | - end | |
| 67 | 53 | end |
| 68 | 54 | # == Schema Information |
| 69 | 55 | # | ... | ... |