DEV: separates preferred-chat-mode service (#18883)

Also adds end to end system tests to ensure navigation scenarios are working correctly. This separation will make it easier to implement state in/out from chat.
This commit is contained in:
Joffrey JAFFEUX
2022-11-07 09:04:43 +01:00
committed by GitHub
parent 29a32f9566
commit a51e5e1987
9 changed files with 136 additions and 34 deletions
@@ -0,0 +1,38 @@
import { module, test } from "qunit";
import { getOwner } from "discourse-common/lib/get-owner";
import Site from "discourse/models/site";
module(
"Discourse Chat | Unit | Service | chat-preferred-mode",
function (hooks) {
hooks.beforeEach(function () {
Site.currentProp("mobileView", false);
this.chatPreferredMode = getOwner(this).lookup(
"service:chat-preferred-mode"
);
});
test("defaults", function (assert) {
assert.strictEqual(this.chatPreferredMode.isDrawer, true);
assert.strictEqual(this.chatPreferredMode.isFullPage, false);
Site.currentProp("mobileView", true);
assert.strictEqual(this.chatPreferredMode.isDrawer, false);
assert.strictEqual(this.chatPreferredMode.isFullPage, true);
});
test("setFullPage", function (assert) {
this.chatPreferredMode.setFullPage();
assert.strictEqual(this.chatPreferredMode.isFullPage, true);
assert.strictEqual(this.chatPreferredMode.isDrawer, false);
});
test("setDrawer", function (assert) {
this.chatPreferredMode.setDrawer();
assert.strictEqual(this.chatPreferredMode.isFullPage, false);
assert.strictEqual(this.chatPreferredMode.isDrawer, true);
});
}
);
@@ -26,12 +26,6 @@ module("Discourse Chat | Unit | Service | full-page-chat", function (hooks) {
assert.strictEqual(this.fullPageChat.isActive, false);
});
test("isPreferred", function (assert) {
assert.strictEqual(this.fullPageChat.isPreferred, false);
this.fullPageChat.isPreferred = true;
assert.strictEqual(this.fullPageChat.isPreferred, true);
});
test("previous route", function (assert) {
const name = "foo";
const params = { id: 1, slug: "bar" };