REFACTOR: Remove Discourse.SiteSettings from utilities

This involves a little refactoring of how our `defaultHomepage()` works.
It previously would check the meta tag / site settings each time it was
called but now it only checks once on application boot.
This commit is contained in:
Robin Ward
2020-07-23 13:43:29 -04:00
parent 4def5a8339
commit c4d5c0c91b
4 changed files with 44 additions and 34 deletions

View File

@@ -1,7 +1,6 @@
import { acceptance } from "helpers/qunit-helpers";
acceptance("Login redirect", {});
acceptance("Login redirect");
QUnit.test("redirects login to default homepage", async function(assert) {
await visit("/login");
assert.equal(
@@ -9,8 +8,15 @@ QUnit.test("redirects login to default homepage", async function(assert) {
"discovery.latest",
"it works when latest is the homepage"
);
this.siteSettings.top_menu = "categories|latest|top|hot";
});
acceptance("Login redirect - categories default", {
settings: {
top_menu: "categories|latest|top|hot"
}
});
QUnit.test("when site setting is categories", async function(assert) {
await visit("/login");
assert.equal(
currentPath(),

View File

@@ -6,6 +6,7 @@ import {
avatarUrl,
getRawSize,
avatarImg,
initializeDefaultHomepage,
defaultHomepage,
setDefaultHomepage,
caretRowCol,
@@ -132,17 +133,12 @@ QUnit.test("avatarImg", assert => {
setDevicePixelRatio(oldRatio);
});
QUnit.test("defaultHomepage", function(assert) {
this.siteSettings.top_menu = "latest|top|hot";
assert.equal(
defaultHomepage(),
"latest",
"default homepage is the first item in the top_menu site setting"
);
var meta = document.createElement("meta");
QUnit.test("defaultHomepage via meta tag", function(assert) {
let meta = document.createElement("meta");
meta.name = "discourse_current_homepage";
meta.content = "hot";
document.body.appendChild(meta);
initializeDefaultHomepage(this.siteSettings);
assert.equal(
defaultHomepage(),
"hot",
@@ -151,18 +147,21 @@ QUnit.test("defaultHomepage", function(assert) {
document.body.removeChild(meta);
});
QUnit.test("setDefaultHomepage", assert => {
var meta = document.createElement("meta");
meta.name = "discourse_current_homepage";
meta.content = "hot";
document.body.appendChild(meta);
setDefaultHomepage("top");
QUnit.test("defaultHomepage via site settings", function(assert) {
this.siteSettings.top_menu = "top|latest|hot";
initializeDefaultHomepage(this.siteSettings);
assert.equal(
meta.content,
defaultHomepage(),
"top",
"default homepage set by setDefaultHomepage"
"default homepage is the first item in the top_menu site setting"
);
document.body.removeChild(meta);
});
QUnit.test("setDefaultHomepage", function(assert) {
initializeDefaultHomepage(this.siteSettings);
assert.equal(defaultHomepage(), "latest");
setDefaultHomepage("top");
assert.equal(defaultHomepage(), "top");
});
QUnit.test("caretRowCol", assert => {