diff --git a/lib/canvas/live_events.rb b/lib/canvas/live_events.rb index b3c4c6592bdca..39784653cfcf5 100644 --- a/lib/canvas/live_events.rb +++ b/lib/canvas/live_events.rb @@ -457,6 +457,7 @@ def self.get_attachment_data(attachment) folder_id: attachment.global_folder_id, unlock_at: attachment.unlock_at, lock_at: attachment.lock_at, + locked: attachment.locked, updated_at: attachment.updated_at } end diff --git a/lib/canvas/live_events_callbacks.rb b/lib/canvas/live_events_callbacks.rb index e531b773edbbc..a6a9f6a99711c 100644 --- a/lib/canvas/live_events_callbacks.rb +++ b/lib/canvas/live_events_callbacks.rb @@ -143,7 +143,7 @@ def self.after_update(obj, changes) Canvas::LiveEvents.assignment_override_updated(obj) when Attachment if attachment_eligible?(obj) - if %w[display_name lock_at unlock_at folder_id].any? { |field| changes[field] } + if %w[display_name lock_at unlock_at folder_id locked].any? { |field| changes[field] } Canvas::LiveEvents.attachment_updated(obj, changes["display_name"]&.first) elsif changes["file_state"] && obj.file_state == "deleted" # Attachments are often soft deleted rather than destroyed diff --git a/spec/observers/live_events_observer_spec.rb b/spec/observers/live_events_observer_spec.rb index e69696ba42858..5f1fae05522a5 100644 --- a/spec/observers/live_events_observer_spec.rb +++ b/spec/observers/live_events_observer_spec.rb @@ -137,6 +137,21 @@ attachment.touch end end + + context "if the attachment is published" do + it "posts attachment_updated event" do + attachment.update(locked: true) + expect(Canvas::LiveEvents).to receive(:attachment_updated) + attachment.publish! + end + end + + context "if the attachment is unpublished" do + it "posts attachment_updated event" do + expect(Canvas::LiveEvents).to receive(:attachment_updated) + attachment.update(locked: true) + end + end end describe "conversation" do