diff options
author | Jan Provaznik <jprovaznik@gitlab.com> | 2018-08-22 08:25:34 +0200 |
---|---|---|
committer | Jan Provaznik <jprovaznik@gitlab.com> | 2018-08-22 08:39:55 +0200 |
commit | 7e5e2b6ffebd7c687c48a691c3c86d9ea254441e (patch) | |
tree | 725c67d123c4e0061fde0a5de7def40fb37d8015 | |
parent | 817e2fd695fbceced843c0299103b50e591e4b82 (diff) | |
download | gitlab-ce-label-event.tar.gz |
Style fixeslabel-event
-rw-r--r-- | app/models/resource_label_event.rb | 4 | ||||
-rw-r--r-- | lib/api/resource_label_events.rb | 4 | ||||
-rw-r--r-- | spec/lib/gitlab/import_export/all_models.yml | 1 | ||||
-rw-r--r-- | spec/services/resource_events/merge_into_notes_service_spec.rb | 101 |
4 files changed, 61 insertions, 49 deletions
diff --git a/app/models/resource_label_event.rb b/app/models/resource_label_event.rb index 5eea05fb4c1..c4d3352d75c 100644 --- a/app/models/resource_label_event.rb +++ b/app/models/resource_label_event.rb @@ -45,9 +45,9 @@ class ResourceLabelEvent < ActiveRecord::Base # if none of issuable IDs is set, check explicitly if nested issuable # object is set, this is used during project import if issuable_count == 0 - issuable_count = self.class.issuable_attrs.count { |attr| self.public_send(attr) } + issuable_count = self.class.issuable_attrs.count { |attr| self.public_send(attr) } # rubocop:disable GitlabSecurity/PublicSend - return true if issuable_count == 1 # rubocop:disable GitlabSecurity/PublicSend + return true if issuable_count == 1 end errors.add(:base, "Exactly one of #{self.class.issuable_attrs.join(', ')} is required") diff --git a/lib/api/resource_label_events.rb b/lib/api/resource_label_events.rb index 6786c3f2bde..816521eef78 100644 --- a/lib/api/resource_label_events.rb +++ b/lib/api/resource_label_events.rb @@ -25,10 +25,8 @@ module API use :pagination end get ":id/#{eventables_str}/:eventable_id/resource_label_events" do - # FIXME: doc - # FIXME: move&rename find_noteable to be shared both for noteables and eventables eventable = find_noteable(parent_type, eventables_str, params[:eventable_id]) - events = eventable.resource_label_events + events = eventable.resource_label_events.includes(:label, :user) present paginate(events), with: Entities::ResourceLabelEvent end diff --git a/spec/lib/gitlab/import_export/all_models.yml b/spec/lib/gitlab/import_export/all_models.yml index de6da1701f8..a76ddb45d7b 100644 --- a/spec/lib/gitlab/import_export/all_models.yml +++ b/spec/lib/gitlab/import_export/all_models.yml @@ -323,7 +323,6 @@ metrics: - merged_by - pipeline resource_label_events: -- epic - user - issue - merge_request diff --git a/spec/services/resource_events/merge_into_notes_service_spec.rb b/spec/services/resource_events/merge_into_notes_service_spec.rb index 100249cab5f..c0edcf49129 100644 --- a/spec/services/resource_events/merge_into_notes_service_spec.rb +++ b/spec/services/resource_events/merge_into_notes_service_spec.rb @@ -18,30 +18,35 @@ describe ResourceEvents::MergeIntoNotesService do describe '#execute' do it 'merges label events into notes in order of created_at' do - note1 = create(:note_on_issue, noteable: resource, project: project, - created_at: 4.days.ago) - note2 = create(:note_on_issue, noteable: resource, project: project, - created_at: 2.days.ago) - event1 = create(:resource_label_event, issue: resource, user: user, - created_at: 3.days.ago) - event2 = create(:resource_label_event, issue: resource, user: user, - created_at: 1.day.ago) + note1 = create(:note_on_issue, + noteable: resource, project: project, created_at: 4.days.ago) + note2 = create(:note_on_issue, + noteable: resource, project: project, created_at: 2.days.ago) + event1 = create(:resource_label_event, + issue: resource, user: user, created_at: 3.days.ago) + event2 = create(:resource_label_event, + issue: resource, user: user, created_at: 1.day.ago) notes = described_class.new(resource, user).execute([note1, note2]) - expect(notes.map(&:discussion_id)).to eq [note1, event1, note2, event2].map(&:discussion_id) + expected = [note1, event1, note2, event2].map(&:discussion_id) + expect(notes.map(&:discussion_id)).to eq expected end it 'squashes events with same time and author into single note' do user2 = create(:user) - create(:resource_label_event, action: :add, label: label, - issue: resource, user: user, created_at: time) - create(:resource_label_event, action: :remove, label: label2, - issue: resource, user: user, created_at: time) - create(:resource_label_event, action: :add, label: label, - issue: resource, user: user2, created_at: time) - create(:resource_label_event, action: :add, label: label2, - issue: resource, user: user, created_at: 1.day.ago) + create(:resource_label_event, + action: :add, label: label, issue: resource, + user: user, created_at: time) + create(:resource_label_event, + action: :remove, label: label2, issue: resource, + user: user, created_at: time) + create(:resource_label_event, + action: :add, label: label, issue: resource, user: user2, + created_at: time) + create(:resource_label_event, + action: :add, label: label2, issue: resource, user: user, + created_at: 1.day.ago) notes = described_class.new(resource, user).execute() @@ -56,10 +61,12 @@ describe ResourceEvents::MergeIntoNotesService do end it 'fetches only notes created after last_fetched_at' do - create(:resource_label_event, action: :add, label: label, - issue: resource, user: user, created_at: 4.days.ago) - event = create(:resource_label_event, action: :add, label: label, - issue: resource, user: user, created_at: 1.day.ago) + create(:resource_label_event, + action: :add, label: label, issue: resource, user: user, + created_at: 4.days.ago) + event = create(:resource_label_event, + action: :add, label: label, issue: resource, user: user, + created_at: 1.day.ago) notes = described_class.new(resource, user, last_fetched_at: 2.days.ago.to_i).execute() @@ -73,40 +80,48 @@ describe ResourceEvents::MergeIntoNotesService do subject { described_class.new(resource, user).execute([]) } it 'returns text note for added labels' do - events = [build(:resource_label_event, action: :add, label: label, - issue: resource, user: user, created_at: time), - build(:resource_label_event, action: :add, label: label2, - issue: resource, user: user, created_at: time), - build(:resource_label_event, action: :add, label: nil, - issue: resource, user: user, created_at: time)] + events = [build(:resource_label_event, + action: :add, label: label, issue: resource, user: user, + created_at: time), + build(:resource_label_event, + action: :add, label: label2, issue: resource, user: user, + created_at: time), + build(:resource_label_event, + action: :add, label: nil, issue: resource, user: user, + created_at: time)] resource.resource_label_events = events expect(subject.first.note).to eq "added #{label_refs(events)} + 1 deleted label" end it 'returns text note for removed labels' do - events = [build(:resource_label_event, action: :remove, label: label, - issue: resource, user: user, created_at: time), - build(:resource_label_event, action: :remove, label: label2, - issue: resource, user: user, created_at: time), - build(:resource_label_event, action: :remove, label: nil, - issue: resource, user: user, created_at: time)] + events = [build(:resource_label_event, + action: :remove, label: label, issue: resource, + user: user, created_at: time), + build(:resource_label_event, + action: :remove, label: label2, issue: resource, + user: user, created_at: time), + build(:resource_label_event, + action: :remove, label: nil, issue: resource, + user: user, created_at: time)] resource.resource_label_events = events expect(subject.first.note).to eq "removed #{label_refs(events)} + 1 deleted label" end it 'returns text note for added and removed labels' do - add_events = [build(:resource_label_event, action: :add, label: label, - issue: resource, user: user, created_at: time), - build(:resource_label_event, action: :add, label: nil, - issue: resource, user: user, created_at: time)] - remove_events = [build(:resource_label_event, action: :remove, - label: label, issue: resource, user: user, - created_at: time), - build(:resource_label_event, action: :remove, - label: nil, issue: resource, user: user, - created_at: time)] + add_events = [build(:resource_label_event, + action: :add, label: label, issue: resource, + user: user, created_at: time), + build(:resource_label_event, + action: :add, label: nil, issue: resource, + user: user, created_at: time)] + remove_events = [build(:resource_label_event, + action: :remove, label: label, issue: resource, + user: user, created_at: time), + build(:resource_label_event, + action: :remove, label: nil, issue: resource, + user: user, created_at: time)] resource.resource_label_events = add_events + remove_events expect(subject.first.note).to eq "added #{label_refs(add_events)} + 1 deleted label and removed #{label_refs(remove_events)} + 1 deleted label" |