From 9dddbcc00dd1b1f582f31eed756f672e8a56f9f5 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Wed, 27 May 2020 15:19:59 -0400 Subject: [PATCH] DEV: Import `MessageBus` from `message-bus-client` instead of globals --- Gemfile.lock | 2 +- app/assets/javascripts/admin/models/backup.js | 5 +++-- .../javascripts/{ember-shim.js => discourse-shims.js} | 4 ++++ .../app/pre-initializers/inject-discourse-objects.js | 6 +++--- app/assets/javascripts/ember_jquery.js | 1 - app/assets/javascripts/vendor.js | 1 + app/assets/javascripts/wizard/test/test_helper.js | 2 +- test/javascripts/acceptance/topic-discovery-test.js | 4 +++- test/javascripts/test_helper.js | 8 +++++--- 9 files changed, 21 insertions(+), 12 deletions(-) rename app/assets/javascripts/{ember-shim.js => discourse-shims.js} (76%) diff --git a/Gemfile.lock b/Gemfile.lock index 967f197bf70..f9ecf2ac1c3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -183,7 +183,7 @@ GEM mini_mime (>= 0.1.1) maxminddb (0.1.22) memory_profiler (0.9.14) - message_bus (3.2.0) + message_bus (3.3.0) rack (>= 1.1.3) method_source (1.0.0) mini_mime (1.0.2) diff --git a/app/assets/javascripts/admin/models/backup.js b/app/assets/javascripts/admin/models/backup.js index 2c41e1ef9d5..45727a28b23 100644 --- a/app/assets/javascripts/admin/models/backup.js +++ b/app/assets/javascripts/admin/models/backup.js @@ -2,6 +2,7 @@ import I18n from "I18n"; import { ajax } from "discourse/lib/ajax"; import { extractError } from "discourse/lib/ajax-error"; import EmberObject from "@ember/object"; +import MessageBus from "message-bus-client"; const Backup = EmberObject.extend({ destroy() { @@ -11,7 +12,7 @@ const Backup = EmberObject.extend({ restore() { return ajax("/admin/backups/" + this.filename + "/restore", { type: "POST", - data: { client_id: window.MessageBus.clientId } + data: { client_id: MessageBus.clientId } }); } }); @@ -38,7 +39,7 @@ Backup.reopenClass({ type: "POST", data: { with_uploads: withUploads, - client_id: window.MessageBus.clientId + client_id: MessageBus.clientId } }).then(result => { if (!result.success) { diff --git a/app/assets/javascripts/ember-shim.js b/app/assets/javascripts/discourse-shims.js similarity index 76% rename from app/assets/javascripts/ember-shim.js rename to app/assets/javascripts/discourse-shims.js index 1837ae1b98a..f790ed9b050 100644 --- a/app/assets/javascripts/ember-shim.js +++ b/app/assets/javascripts/discourse-shims.js @@ -12,3 +12,7 @@ define("ember", ["exports"], function(__exports__) { __exports__.default = Ember; }); + +define("message-bus-client", ["exports"], function(__exports__) { + __exports__.default = window.MessageBus; +}); diff --git a/app/assets/javascripts/discourse/app/pre-initializers/inject-discourse-objects.js b/app/assets/javascripts/discourse/app/pre-initializers/inject-discourse-objects.js index 30d1fb4e024..045798e6a06 100644 --- a/app/assets/javascripts/discourse/app/pre-initializers/inject-discourse-objects.js +++ b/app/assets/javascripts/discourse/app/pre-initializers/inject-discourse-objects.js @@ -9,6 +9,7 @@ import TopicTrackingState, { import ScreenTrack from "discourse/lib/screen-track"; import Site from "discourse/models/site"; import User from "discourse/models/user"; +import MessageBus from "message-bus-client"; const ALL_TARGETS = ["controller", "component", "route", "model", "adapter"]; @@ -27,8 +28,7 @@ export default { ALL_TARGETS.forEach(t => app.inject(t, "store", "service:store")); } - const messageBus = window.MessageBus; - app.register("message-bus:main", messageBus, { instantiate: false }); + app.register("message-bus:main", MessageBus, { instantiate: false }); ALL_TARGETS.concat("service").forEach(t => app.inject(t, "messageBus", "message-bus:main") @@ -39,7 +39,7 @@ export default { app.currentUser = currentUser; const topicTrackingState = TopicTrackingState.create({ - messageBus, + messageBus: MessageBus, currentUser }); app.register("topic-tracking-state:main", topicTrackingState, { diff --git a/app/assets/javascripts/ember_jquery.js b/app/assets/javascripts/ember_jquery.js index be7d57d8028..51f31d5ed3c 100644 --- a/app/assets/javascripts/ember_jquery.js +++ b/app/assets/javascripts/ember_jquery.js @@ -3,4 +3,3 @@ //= require jquery //= require ember_include //= require discourse-loader -//= require ember-shim diff --git a/app/assets/javascripts/vendor.js b/app/assets/javascripts/vendor.js index 64119c49403..5efe954acb2 100644 --- a/app/assets/javascripts/vendor.js +++ b/app/assets/javascripts/vendor.js @@ -29,3 +29,4 @@ //= require virtual-dom //= require virtual-dom-amd //= require intersection-observer +//= require discourse-shims diff --git a/app/assets/javascripts/wizard/test/test_helper.js b/app/assets/javascripts/wizard/test/test_helper.js index c04a59f7782..953ba72fda4 100644 --- a/app/assets/javascripts/wizard/test/test_helper.js +++ b/app/assets/javascripts/wizard/test/test_helper.js @@ -12,7 +12,7 @@ //= require ember-template-compiler //= require qunit/qunit/qunit //= require ember-qunit -//= require ember-shim +//= require discourse-shims //= require wizard-application //= require wizard-vendor //= require helpers/assertions diff --git a/test/javascripts/acceptance/topic-discovery-test.js b/test/javascripts/acceptance/topic-discovery-test.js index b29891853f8..262a50c53eb 100644 --- a/test/javascripts/acceptance/topic-discovery-test.js +++ b/test/javascripts/acceptance/topic-discovery-test.js @@ -1,4 +1,6 @@ import { acceptance } from "helpers/qunit-helpers"; +import MessageBus from "message-bus-client"; + acceptance("Topic Discovery", { settings: { show_pinned_excerpt_desktop: true @@ -85,7 +87,7 @@ QUnit.test("Live update unread state", async assert => { ); // Mimic a messagebus message - window.MessageBus.callbacks.filterBy("channel", "/latest").map(c => + MessageBus.callbacks.filterBy("channel", "/latest").map(c => c.func({ message_type: "read", topic_id: 11995, diff --git a/test/javascripts/test_helper.js b/test/javascripts/test_helper.js index 5646f9847d5..5e7c155edd0 100644 --- a/test/javascripts/test_helper.js +++ b/test/javascripts/test_helper.js @@ -17,7 +17,7 @@ // Stuff we need to load first //= require vendor -//= require ember-shim +//= require discourse-shims //= require pretty-text-bundle //= require markdown-it-bundle //= require application @@ -55,8 +55,10 @@ sinon.config = { window.inTestEnv = true; +let MessageBus = require("message-bus-client").default; + // Stop the message bus so we don't get ajax calls -window.MessageBus.stop(); +MessageBus.stop(); // Trick JSHint into allow document.write var d = document; @@ -191,7 +193,7 @@ QUnit.testDone(function() { window.Discourse.__container__ ); - window.MessageBus.unsubscribe("*"); + MessageBus.unsubscribe("*"); delete window.server; window.Mousetrap.reset(); });