Skip to content

Commit 7711496

Browse files
authored
Merge pull request #1283 from ElixirTeSS/empty-update-logs
Avoid empty update logs
2 parents 8540baf + cd0047e commit 7711496

2 files changed

Lines changed: 44 additions & 1 deletion

File tree

lib/ingestors/ingestor.rb

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,14 @@ def write_resources(type, resources, user, provider, source: nil)
213213
method: source.method
214214
}
215215
end
216-
resource.create_activity(update ? :update : :create, owner: user, parameters: activity_params)
216+
217+
if update
218+
if resource.log_update_activity?
219+
resource.create_activity(:update, owner: user, parameters: activity_params)
220+
end
221+
else
222+
resource.create_activity(:create, owner: user, parameters: activity_params)
223+
end
217224
@stats[key][update ? :updated : :added] += 1
218225
else
219226
@stats[key][:rejected] += 1

test/unit/ingestors/ingestor_test.rb

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,4 +392,40 @@ def run_filter(source_filter)
392392
end
393393
end
394394

395+
test 'does not log useless update activities' do
396+
user = users(:scraper_user)
397+
provider = content_providers(:goblet)
398+
url = 'http://example.com/cool-course-summer'
399+
e = events(:course_event)
400+
e.update!(scraper_record: true)
401+
402+
assert provider.events.where(url: url).any?
403+
404+
event = OpenStruct.new(url: 'http://example.com/cool-course-summer', title: 'A different title')
405+
406+
ingestor = Ingestors::Ingestor.new
407+
ingestor.instance_variable_set(:@events, [event])
408+
assert_no_difference('provider.events.count') do
409+
assert_no_difference('PublicActivity::Activity.where(key: "event.create").count') do
410+
assert_difference('PublicActivity::Activity.where(key: "event.update").count', 1) do
411+
assert_difference('PublicActivity::Activity.where(key: "event.update_parameter").count', 1) do # Title is changed
412+
ingestor.write(user, provider)
413+
end
414+
end
415+
end
416+
end
417+
418+
ingestor = Ingestors::Ingestor.new
419+
ingestor.instance_variable_set(:@events, [event])
420+
assert_no_difference('provider.events.count') do
421+
assert_no_difference('PublicActivity::Activity.where(key: "event.create").count') do
422+
assert_no_difference('PublicActivity::Activity.where(key: "event.update").count') do
423+
assert_no_difference('PublicActivity::Activity.where(key: "event.update_parameter").count') do
424+
ingestor.write(user, provider) # Nothing changed so don't log
425+
end
426+
end
427+
end
428+
end
429+
end
430+
395431
end

0 commit comments

Comments
 (0)