@@ -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+
395431end
0 commit comments