summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Provaznik <jprovaznik@gitlab.com>2018-08-22 08:25:34 +0200
committerJan Provaznik <jprovaznik@gitlab.com>2018-08-22 08:39:55 +0200
commit7e5e2b6ffebd7c687c48a691c3c86d9ea254441e (patch)
tree725c67d123c4e0061fde0a5de7def40fb37d8015
parent817e2fd695fbceced843c0299103b50e591e4b82 (diff)
downloadgitlab-ce-label-event.tar.gz
Style fixeslabel-event
-rw-r--r--app/models/resource_label_event.rb4
-rw-r--r--lib/api/resource_label_events.rb4
-rw-r--r--spec/lib/gitlab/import_export/all_models.yml1
-rw-r--r--spec/services/resource_events/merge_into_notes_service_spec.rb101
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"