Fix unit tests after fixing gpui model drop semantics

Max Brunsfeld and Antonio Scandurra created

co-authored-by: Antonio Scandurra <antonio@zed.dev>

Change summary

crates/auto_update/src/auto_update.rs | 4 ++--
crates/client/src/client.rs           | 8 +++++---
crates/editor/src/blink_manager.rs    | 9 +++------
3 files changed, 10 insertions(+), 11 deletions(-)

Detailed changes

crates/auto_update/src/auto_update.rs 🔗

@@ -63,10 +63,10 @@ pub fn init(http_client: Arc<dyn HttpClient>, server_url: String, cx: &mut AppCo
             cx.observe_global::<Settings, _>(move |updater, cx| {
                 if cx.global::<Settings>().auto_update {
                     if update_subscription.is_none() {
-                        *(&mut update_subscription) = Some(updater.start_polling(cx))
+                        update_subscription = Some(updater.start_polling(cx))
                     }
                 } else {
-                    (&mut update_subscription).take();
+                    update_subscription.take();
                 }
             })
             .detach();

crates/client/src/client.rs 🔗

@@ -1649,11 +1649,13 @@ mod tests {
             },
         );
         drop(subscription1);
-        let _subscription2 =
-            client.add_message_handler(model, move |_, _: TypedEnvelope<proto::Ping>, _, _| {
+        let _subscription2 = client.add_message_handler(
+            model.clone(),
+            move |_, _: TypedEnvelope<proto::Ping>, _, _| {
                 done_tx2.try_send(()).unwrap();
                 async { Ok(()) }
-            });
+            },
+        );
         server.send(proto::Ping {});
         done_rx2.next().await.unwrap();
     }
@@ -15,12 +15,9 @@ pub struct BlinkManager {
 
 impl BlinkManager {
     pub fn new(blink_interval: Duration, cx: &mut ModelContext<Self>) -> Self {
-        let weak_handle = cx.weak_handle();
-        cx.observe_global::<Settings, _>(move |_, cx| {
-            if let Some(this) = weak_handle.upgrade(cx) {
-                // Make sure we blink the cursors if the setting is re-enabled
-                this.update(cx, |this, cx| this.blink_cursors(this.blink_epoch, cx));
-            }
+        cx.observe_global::<Settings, _>(move |this, cx| {
+            // Make sure we blink the cursors if the setting is re-enabled
+            this.blink_cursors(this.blink_epoch, cx)
         })
         .detach();