diff --git a/app/assets/javascripts/discourse/tests/acceptance/composer-uncategorized-test.js b/app/assets/javascripts/discourse/tests/acceptance/composer-uncategorized-test.js index be2d7b96a11..03499f9f4d9 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/composer-uncategorized-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/composer-uncategorized-test.js @@ -72,18 +72,21 @@ acceptance( id: 1, name: "test won", slug: "test-won", + permission: 1, topic_template: null, }, { id: 2, name: "test too", slug: "test-too", + permission: 1, topic_template: "", }, { id: 3, name: "test free", slug: "test-free", + permission: 1, topic_template: null, }, ], diff --git a/app/assets/javascripts/discourse/tests/helpers/create-store.js b/app/assets/javascripts/discourse/tests/helpers/create-store.js index 93a8520d6fa..6933355dec4 100644 --- a/app/assets/javascripts/discourse/tests/helpers/create-store.js +++ b/app/assets/javascripts/discourse/tests/helpers/create-store.js @@ -5,6 +5,7 @@ import TopicListAdapter from "discourse/adapters/topic-list"; import TopicTrackingState from "discourse/models/topic-tracking-state"; import { buildResolver } from "discourse-common/resolver"; import { currentSettings } from "discourse/tests/helpers/site-settings"; +import Site from "discourse/models/site"; const CatAdapter = RestAdapter.extend({ primaryKey: "cat_id", @@ -13,6 +14,10 @@ const CatAdapter = RestAdapter.extend({ export default function (customLookup = () => {}) { const resolver = buildResolver("discourse").create(); + // Normally this would happen in inject-discourse-objects. + // However, `create-store` is used by unit tests which do not init the application. + Site.current(); + return Store.create({ register: { lookup(type) { diff --git a/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js b/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js index 340340ad9d8..749d72ea7a5 100644 --- a/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js +++ b/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js @@ -19,7 +19,6 @@ import Site from "discourse/models/site"; import User from "discourse/models/user"; import { _clearSnapshots } from "select-kit/components/composer-actions"; import { clearHTMLCache } from "discourse/helpers/custom-html"; -import createStore from "discourse/tests/helpers/create-store"; import deprecated from "discourse-common/lib/deprecated"; import { restoreBaseUri } from "discourse-common/lib/get-url"; import { flushMap } from "discourse/services/store"; @@ -58,6 +57,7 @@ import { clearPresenceCallbacks, setTestPresence, } from "discourse/lib/user-presence"; +import PreloadStore from "discourse/lib/preload-store"; const LEGACY_ENV = !setupApplicationTest; @@ -116,9 +116,9 @@ export function resetSite(siteSettings, extras) { siteFixtures["site.json"].site, extras || {} ); - siteAttrs.store = createStore(); siteAttrs.siteSettings = siteSettings; - return Site.resetCurrent(Site.create(siteAttrs)); + PreloadStore.store("site", siteAttrs); + Site.resetCurrent(); } export function applyPretender(name, server, helper) { diff --git a/app/assets/javascripts/discourse/tests/setup-tests.js b/app/assets/javascripts/discourse/tests/setup-tests.js index fc589b7d974..766b0bab4a2 100644 --- a/app/assets/javascripts/discourse/tests/setup-tests.js +++ b/app/assets/javascripts/discourse/tests/setup-tests.js @@ -25,6 +25,7 @@ import QUnit from "qunit"; import { ScrollingDOMMethods } from "discourse/mixins/scrolling"; import Session from "discourse/models/session"; import User from "discourse/models/user"; +import Site from "discourse/models/site"; import bootbox from "bootbox"; import { buildResolver } from "discourse-common/resolver"; import { createHelperContext } from "discourse-common/lib/helpers"; @@ -319,15 +320,28 @@ function setupTestsCommon(application, container, config) { session.highlightJsPath = setupData.highlightJsPath; } User.resetCurrent(); - let site = resetSite(settings); + createHelperContext({ - siteSettings: settings, + get siteSettings() { + if (isLegacyEmber() && container.isDestroyed) { + return settings; + } else { + return container.lookup("site-settings:main"); + } + }, capabilities: {}, - site, + get site() { + if (isLegacyEmber() && container.isDestroyed) { + return Site.current(); + } else { + return container.lookup("site:main") || Site.current(); + } + }, registry: app.__registry__, }); PreloadStore.reset(); + resetSite(settings); sinon.stub(ScrollingDOMMethods, "screenNotFull"); sinon.stub(ScrollingDOMMethods, "bindOnScroll");