diff --git a/spec/factories/notes.rb b/spec/factories/notes.rb index 2940ac342a2ac9b73340001f1871f21d51aeb313..6801438165dced3790de4bfcc809bf0dcf021b68 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 331ebaf4ac45f515a0c212bf406747b30cbfff8c..70bbe63326930ac52f2c842219d14bc7c64e6c6d 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 20e383e03b4b0a215cdb2cb334e5237fc8c1a151..4b67c2facf32a7e7c0476f4d32b9d1d767b98187 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 20d40c47aa6e3fc16644c93926042829453585c9..e1b81b23d4b56c54432d3c0da809b1ebb9e89931 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