From fc57d36018a23c15da013bebf42d51f7a8e9a955 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon <grzesiek.bizon@gmail.com> Date: Wed, 4 May 2016 11:17:16 +0200 Subject: [PATCH] Minor changes in note validation specs --- spec/factories/notes.rb | 22 ++++++++++++---------- spec/models/concerns/issuable_spec.rb | 6 ++++-- spec/models/merge_request_spec.rb | 2 -- spec/models/note_spec.rb | 11 ++++++----- 4 files changed, 22 insertions(+), 19 deletions(-) diff --git a/spec/factories/notes.rb b/spec/factories/notes.rb index 2940ac342a2ac..6801438165dce 100644 --- a/spec/factories/notes.rb +++ b/spec/factories/notes.rb @@ -9,9 +9,9 @@ author noteable { create(:issue, project: project) } - factory :note_on_issue, traits: [:on_issue], aliases: [:votable_note] factory :note_on_commit, traits: [:on_commit] factory :note_on_commit_diff, traits: [:on_commit, :on_diff], class: LegacyDiffNote + factory :note_on_issue, traits: [:on_issue], aliases: [:votable_note] factory :note_on_merge_request, traits: [:on_merge_request] factory :note_on_merge_request_diff, traits: [:on_merge_request, :on_diff], class: LegacyDiffNote factory :note_on_project_snippet, traits: [:on_project_snippet] @@ -19,14 +19,20 @@ factory :downvote_note, traits: [:award, :downvote] factory :upvote_note, traits: [:award, :upvote] - trait :on_issue do - noteable_type 'Issue' - end - trait :on_commit do noteable nil + noteable_type 'Commit' + noteable_id nil commit_id RepoHelpers.sample_commit.id - noteable_type "Commit" + end + + trait :on_diff do + line_code "0_184_184" + end + + trait :on_issue do + noteable_type 'Issue' + noteable { create(:issue, project: project) } end trait :on_merge_request do @@ -42,10 +48,6 @@ noteable { create(:snippet, project: project) } end - trait :on_diff do - line_code "0_184_184" - end - trait :system do system true end diff --git a/spec/models/concerns/issuable_spec.rb b/spec/models/concerns/issuable_spec.rb index 331ebaf4ac45f..70bbe63326930 100644 --- a/spec/models/concerns/issuable_spec.rb +++ b/spec/models/concerns/issuable_spec.rb @@ -228,9 +228,11 @@ end describe "votes" do + let(:project) { issue.project } + before do - issue.notes.awards.create!(note: "thumbsup", author: user, project: issue.project) - issue.notes.awards.create!(note: "thumbsdown", author: user, project: issue.project) + issue.notes.awards.create!(note: "thumbsup", author: user, project: project) + issue.notes.awards.create!(note: "thumbsdown", author: user, project: project) end it "returns correct values" do diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb index 20e383e03b4b0..4b67c2facf32a 100644 --- a/spec/models/merge_request_spec.rb +++ b/spec/models/merge_request_spec.rb @@ -120,7 +120,6 @@ before do allow(merge_request).to receive(:commits) { [merge_request.source_project.repository.commit] } create(:note_on_commit, commit_id: merge_request.commits.first.id, - noteable_type: 'Commit', project: merge_request.project) create(:note, noteable: merge_request, project: merge_request.project) end @@ -132,7 +131,6 @@ it "should include notes for commits from target project as well" do create(:note_on_commit, commit_id: merge_request.commits.first.id, - noteable_type: 'Commit', project: merge_request.target_project) expect(merge_request.commits).not_to be_empty diff --git a/spec/models/note_spec.rb b/spec/models/note_spec.rb index 20d40c47aa6e3..e1b81b23d4b56 100644 --- a/spec/models/note_spec.rb +++ b/spec/models/note_spec.rb @@ -13,29 +13,30 @@ it { is_expected.to validate_presence_of(:note) } it { is_expected.to validate_presence_of(:project) } - context 'when note is comment on commit' do + context 'when note is on commit' do before { allow(subject).to receive(:for_commit?).and_return(true) } it { is_expected.to validate_presence_of(:commit_id) } it { is_expected.to_not validate_presence_of(:noteable_id) } end - context 'when note is not comment on commit' do + context 'when note is not on commit' do before { allow(subject).to receive(:for_commit?).and_return(false) } it { is_expected.to_not validate_presence_of(:commit_id) } it { is_expected.to validate_presence_of(:noteable_id) } end - context 'when noteable and note project is different' do + context 'when noteable and note project differ' do subject do - build(:note, noteable: create(:issue), project: create(:project)) + build(:note, noteable: build_stubbed(:issue), + project: build_stubbed(:project)) end it { is_expected.to be_invalid } end - context 'when noteable and note project is the same one' do + context 'when noteable and note project are the same' do subject { create(:note) } it { is_expected.to be_valid } end -- GitLab