From 84d06c7f0b2a1f905b0f2a3d973d2c37a0f3be13 Mon Sep 17 00:00:00 2001 From: Kevin McConnell Date: Wed, 26 Feb 2025 10:42:18 +0000 Subject: [PATCH] Creators watch their own bubble by default --- app/models/bubble/watchable.rb | 7 +++++++ test/models/bubble/watchable_test.rb | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/app/models/bubble/watchable.rb b/app/models/bubble/watchable.rb index 4c5bdd4aa..9be770618 100644 --- a/app/models/bubble/watchable.rb +++ b/app/models/bubble/watchable.rb @@ -3,6 +3,8 @@ module Bubble::Watchable included do has_many :watches, dependent: :destroy + + after_create :set_watching_for_creator end def watched_by?(user) @@ -17,4 +19,9 @@ module Bubble::Watchable User.where(id: bucket.subscribers.pluck(:id) + watches.watching.pluck(:user_id) - watches.not_watching.pluck(:user_id)) end + + private + def set_watching_for_creator + set_watching(creator, true) + end end diff --git a/test/models/bubble/watchable_test.rb b/test/models/bubble/watchable_test.rb index 81a16b219..0c105401e 100644 --- a/test/models/bubble/watchable_test.rb +++ b/test/models/bubble/watchable_test.rb @@ -24,4 +24,12 @@ class Bubble::WatchableTest < ActiveSupport::TestCase bubbles(:logo).set_watching(users(:kevin), false) assert_not bubbles(:logo).watched_by?(users(:kevin)) end + + test "bubbles are initially watched by their creator" do + buckets(:writebook).unsubscribe(users(:kevin)) + + bubble = buckets(:writebook).bubbles.create!(creator: users(:kevin)) + + assert bubble.watched_by?(users(:kevin)) + end end