mirror of
https://github.com/discourse/discourse.git
synced 2024-12-05 09:56:30 +08:00
a8793d0d9a
* Calling `Discourse.reset()` creates a new container We should run our de-initializers only after acceptance tests, since initializers are not run outside of acceptance tests anyway, and the container at this point can be passed properly to the `teardown()` method. * Remove `Discourse.reset` from tests This would cause a new container to be created which leaks many objects. * `updateCurrentUser` is more accurate than `replaceCurrentUser`
90 lines
2.4 KiB
JavaScript
90 lines
2.4 KiB
JavaScript
import { logIn, updateCurrentUser } from "helpers/qunit-helpers";
|
|
|
|
QUnit.module("lib:discourse");
|
|
|
|
QUnit.test("getURL on subfolder install", assert => {
|
|
Discourse.BaseUri = "/forum";
|
|
assert.equal(Discourse.getURL("/"), "/forum/", "root url has subfolder");
|
|
assert.equal(
|
|
Discourse.getURL("/u/neil"),
|
|
"/forum/u/neil",
|
|
"relative url has subfolder"
|
|
);
|
|
});
|
|
|
|
QUnit.test("getURLWithCDN on subfolder install with S3", assert => {
|
|
Discourse.BaseUri = "/forum";
|
|
|
|
Discourse.S3CDN = "https://awesome.cdn/site";
|
|
Discourse.S3BaseUrl = "//test.s3-us-west-1.amazonaws.com/site";
|
|
|
|
let url = "//test.s3-us-west-1.amazonaws.com/site/forum/awesome.png";
|
|
let expected = "https://awesome.cdn/site/forum/awesome.png";
|
|
|
|
assert.equal(Discourse.getURLWithCDN(url), expected, "at correct path");
|
|
|
|
Discourse.S3CDN = null;
|
|
Discourse.S3BaseUrl = null;
|
|
});
|
|
|
|
QUnit.test("title counts are updated correctly", assert => {
|
|
Discourse.set("hasFocus", true);
|
|
Discourse.set("contextCount", 0);
|
|
Discourse.set("notificationCount", 0);
|
|
|
|
Discourse.set("_docTitle", "Test Title");
|
|
|
|
assert.equal(document.title, "Test Title", "title is correct");
|
|
|
|
Discourse.updateNotificationCount(5);
|
|
assert.equal(document.title, "Test Title", "title doesn't change with focus");
|
|
|
|
Discourse.incrementBackgroundContextCount();
|
|
assert.equal(document.title, "Test Title", "title doesn't change with focus");
|
|
|
|
Discourse.set("hasFocus", false);
|
|
|
|
Discourse.updateNotificationCount(5);
|
|
assert.equal(
|
|
document.title,
|
|
"Test Title",
|
|
"notification count ignored for anon"
|
|
);
|
|
|
|
Discourse.incrementBackgroundContextCount();
|
|
assert.equal(
|
|
document.title,
|
|
"(1) Test Title",
|
|
"title changes when incremented for anon"
|
|
);
|
|
|
|
logIn();
|
|
updateCurrentUser({ dynamic_favicon: false });
|
|
|
|
Discourse.set("hasFocus", true);
|
|
Discourse.set("hasFocus", false);
|
|
|
|
Discourse.incrementBackgroundContextCount();
|
|
assert.equal(
|
|
document.title,
|
|
"Test Title",
|
|
"title doesn't change when incremented for logged in"
|
|
);
|
|
|
|
Discourse.updateNotificationCount(3);
|
|
assert.equal(
|
|
document.title,
|
|
"(3) Test Title",
|
|
"title includes notification count for logged in user"
|
|
);
|
|
|
|
Discourse.set("hasFocus", false);
|
|
Discourse.set("hasFocus", true);
|
|
|
|
assert.equal(
|
|
document.title,
|
|
"Test Title",
|
|
"counter dissappears after focus, and doesn't reappear until another notification arrives"
|
|
);
|
|
});
|