From 46e9f402ebe6abc3fa51c6d938a5b01826b3b7d2 Mon Sep 17 00:00:00 2001 From: Alan Guo Xiang Tan Date: Wed, 2 Nov 2022 19:07:17 +0800 Subject: [PATCH] DEV: Avoid cloning site settings in QUnit tests (#18811) `siteSettings` is now a service which means there should only be one state for `siteSettings` during the life time of the application. This also helps to maintain parity with production where the `site` model relies on the `siteSettings` service and not a clone of the attributes. --- .../javascripts/discourse/tests/helpers/qunit-helpers.js | 6 +++--- app/assets/javascripts/discourse/tests/setup-tests.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js b/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js index 081431fe29e..8ba016714d6 100644 --- a/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js +++ b/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js @@ -127,11 +127,10 @@ export function withFrozenTime(timeString, timezone, callback) { let _pretenderCallbacks = {}; -export function resetSite(siteSettings, extras = {}) { +export function resetSite(extras = {}) { const siteAttrs = { ...siteFixtures["site.json"].site, ...extras, - siteSettings, }; PreloadStore.store("site", cloneJSON(siteAttrs)); @@ -311,9 +310,10 @@ export function acceptance(name, optionsOrCallback) { if (settingChanges) { mergeSettings(settingChanges); } + this.siteSettings = currentSettings(); - resetSite(currentSettings(), siteChanges); + resetSite(siteChanges); this.container = getOwner(this); diff --git a/app/assets/javascripts/discourse/tests/setup-tests.js b/app/assets/javascripts/discourse/tests/setup-tests.js index e5de47408fa..d95039c0604 100644 --- a/app/assets/javascripts/discourse/tests/setup-tests.js +++ b/app/assets/javascripts/discourse/tests/setup-tests.js @@ -313,7 +313,7 @@ export default function setupTests(config) { }); PreloadStore.reset(); - resetSite(settings); + resetSite(); sinon.stub(ScrollingDOMMethods, "screenNotFull"); sinon.stub(ScrollingDOMMethods, "bindOnScroll");