|
|
|
@@ -40,11 +40,11 @@ QUnit.module("SwitchCompanyMenu", (hooks) => {
|
|
|
|
|
hooks.beforeEach(() => {
|
|
|
|
|
patchWithCleanup(session.user_companies, {
|
|
|
|
|
allowed_companies: {
|
|
|
|
|
1: { id: 1, name: "Hermit" },
|
|
|
|
|
2: { id: 2, name: "Herman's" },
|
|
|
|
|
3: { id: 3, name: "Heroes TM" },
|
|
|
|
|
3: { id: 3, name: "Hermit", sequence: 1 },
|
|
|
|
|
2: { id: 2, name: "Herman's", sequence: 2 },
|
|
|
|
|
1: { id: 1, name: "Heroes TM", sequence: 3 },
|
|
|
|
|
},
|
|
|
|
|
current_company: 1,
|
|
|
|
|
current_company: 3,
|
|
|
|
|
});
|
|
|
|
|
serviceRegistry.add("ui", uiService);
|
|
|
|
|
serviceRegistry.add("company", companyService);
|
|
|
|
@@ -90,28 +90,28 @@ QUnit.module("SwitchCompanyMenu", (hooks) => {
|
|
|
|
|
const scMenu = await createSwitchCompanyMenu({ onPushState });
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [x] **Company 1**
|
|
|
|
|
* [ ] Company 2
|
|
|
|
|
* [ ] Company 3
|
|
|
|
|
* [x] **Hermit**
|
|
|
|
|
* [ ] Herman's
|
|
|
|
|
* [ ] Heroes TM
|
|
|
|
|
*/
|
|
|
|
|
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [1]);
|
|
|
|
|
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 1);
|
|
|
|
|
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [3]);
|
|
|
|
|
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 3);
|
|
|
|
|
await click(scMenu.el.querySelector(".dropdown-toggle"));
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id]", 3);
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id] .fa-check-square", 1);
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id] .fa-square-o", 2);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [x] **Company 1**
|
|
|
|
|
* [x] Company 2 -> toggle
|
|
|
|
|
* [ ] Company 3
|
|
|
|
|
* [x] **Hermit**
|
|
|
|
|
* [x] Herman's -> toggle
|
|
|
|
|
* [ ] Heroes TM
|
|
|
|
|
*/
|
|
|
|
|
await click(scMenu.el.querySelectorAll(".toggle_company")[1]);
|
|
|
|
|
assert.containsOnce(scMenu.el, ".dropdown-menu", "dropdown is still opened");
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id] .fa-check-square", 2);
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id] .fa-square-o", 1);
|
|
|
|
|
await prom;
|
|
|
|
|
assert.verifySteps(["cids=1%2C2"]);
|
|
|
|
|
assert.verifySteps(["cids=3%2C2"]);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
QUnit.test("can toggle multiple companies at once", async (assert) => {
|
|
|
|
@@ -125,21 +125,21 @@ QUnit.module("SwitchCompanyMenu", (hooks) => {
|
|
|
|
|
const scMenu = await createSwitchCompanyMenu({ onPushState }, 50);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [x] **Company 1**
|
|
|
|
|
* [ ] Company 2
|
|
|
|
|
* [ ] Company 3
|
|
|
|
|
* [x] **Hermit**
|
|
|
|
|
* [ ] Herman's
|
|
|
|
|
* [ ] Heroes TM
|
|
|
|
|
*/
|
|
|
|
|
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [1]);
|
|
|
|
|
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 1);
|
|
|
|
|
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [3]);
|
|
|
|
|
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 3);
|
|
|
|
|
await click(scMenu.el.querySelector(".dropdown-toggle"));
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id]", 3);
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id] .fa-check-square", 1);
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id] .fa-square-o", 2);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [ ] **Company 1** -> toggle all
|
|
|
|
|
* [x] Company 2 -> toggle all
|
|
|
|
|
* [x] Company 3 -> toggle all
|
|
|
|
|
* [ ] **Hermit** -> toggle all
|
|
|
|
|
* [x] Herman's -> toggle all
|
|
|
|
|
* [x] Heroes TM -> toggle all
|
|
|
|
|
*/
|
|
|
|
|
await click(scMenu.el.querySelectorAll(".toggle_company")[0]);
|
|
|
|
|
await click(scMenu.el.querySelectorAll(".toggle_company")[1]);
|
|
|
|
@@ -150,7 +150,7 @@ QUnit.module("SwitchCompanyMenu", (hooks) => {
|
|
|
|
|
|
|
|
|
|
assert.verifySteps([]);
|
|
|
|
|
await prom; // await toggle promise
|
|
|
|
|
assert.verifySteps(["cids=2%2C3"]);
|
|
|
|
|
assert.verifySteps(["cids=2%2C1"]);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
QUnit.test("single company selected: toggling it off will keep it", async (assert) => {
|
|
|
|
@@ -164,27 +164,27 @@ QUnit.module("SwitchCompanyMenu", (hooks) => {
|
|
|
|
|
const scMenu = await createSwitchCompanyMenu();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [x] **Company 1**
|
|
|
|
|
* [ ] Company 2
|
|
|
|
|
* [ ] Company 3
|
|
|
|
|
* [x] **Hermit**
|
|
|
|
|
* [ ] Herman's
|
|
|
|
|
* [ ] Heroes TM
|
|
|
|
|
*/
|
|
|
|
|
assert.deepEqual(scMenu.env.services.router.current.hash, { cids: 1 });
|
|
|
|
|
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [1]);
|
|
|
|
|
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 1);
|
|
|
|
|
assert.deepEqual(scMenu.env.services.router.current.hash, { cids: 3 });
|
|
|
|
|
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [3]);
|
|
|
|
|
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 3);
|
|
|
|
|
await click(scMenu.el.querySelector(".dropdown-toggle"));
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id]", 3);
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id] .fa-check-square", 1);
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id] .fa-square-o", 2);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [ ] **Company 1** -> toggle off
|
|
|
|
|
* [ ] Company 2
|
|
|
|
|
* [ ] Company 3
|
|
|
|
|
* [ ] **Hermit** -> toggle off
|
|
|
|
|
* [ ] Herman's
|
|
|
|
|
* [ ] Heroes TM
|
|
|
|
|
*/
|
|
|
|
|
await click(scMenu.el.querySelectorAll(".toggle_company")[0]);
|
|
|
|
|
assert.deepEqual(scMenu.env.services.router.current.hash, { cids: 1 });
|
|
|
|
|
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [1]);
|
|
|
|
|
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 1);
|
|
|
|
|
assert.deepEqual(scMenu.env.services.router.current.hash, { cids: 3 });
|
|
|
|
|
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [3]);
|
|
|
|
|
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 3);
|
|
|
|
|
assert.containsOnce(scMenu.el, ".dropdown-menu", "dropdown is still opened");
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id] .fa-check-square", 0);
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id] .fa-square-o", 3);
|
|
|
|
@@ -199,21 +199,21 @@ QUnit.module("SwitchCompanyMenu", (hooks) => {
|
|
|
|
|
const scMenu = await createSwitchCompanyMenu({ onPushState });
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [x] **Company 1**
|
|
|
|
|
* [ ] Company 2
|
|
|
|
|
* [ ] Company 3
|
|
|
|
|
* [x] **Hermit**
|
|
|
|
|
* [ ] Herman's
|
|
|
|
|
* [ ] Heroes TM
|
|
|
|
|
*/
|
|
|
|
|
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [1]);
|
|
|
|
|
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 1);
|
|
|
|
|
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [3]);
|
|
|
|
|
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 3);
|
|
|
|
|
await click(scMenu.el.querySelector(".dropdown-toggle"));
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id]", 3);
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id] .fa-check-square", 1);
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id] .fa-square-o", 2);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [x] **Company 1**
|
|
|
|
|
* [ ] Company 2 -> log into
|
|
|
|
|
* [ ] Company 3
|
|
|
|
|
* [x] **Hermit**
|
|
|
|
|
* [ ] Herman's -> log into
|
|
|
|
|
* [ ] Heroes TM
|
|
|
|
|
*/
|
|
|
|
|
await click(scMenu.el.querySelectorAll(".log_into")[1]);
|
|
|
|
|
assert.containsNone(scMenu.el, ".dropdown-menu", "dropdown is directly closed");
|
|
|
|
@@ -230,9 +230,9 @@ QUnit.module("SwitchCompanyMenu", (hooks) => {
|
|
|
|
|
const scMenu = await createSwitchCompanyMenu({ onPushState });
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [x] Company 1
|
|
|
|
|
* [ ] Company 2
|
|
|
|
|
* [x] **Company 3**
|
|
|
|
|
* [x] Hermit
|
|
|
|
|
* [ ] Herman's
|
|
|
|
|
* [x] **Heroes TM**
|
|
|
|
|
*/
|
|
|
|
|
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [3, 1]);
|
|
|
|
|
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 3);
|
|
|
|
@@ -242,9 +242,9 @@ QUnit.module("SwitchCompanyMenu", (hooks) => {
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id] .fa-square-o", 1);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [x] Company 1
|
|
|
|
|
* [ ] Company 2 -> log into
|
|
|
|
|
* [x] **Company 3**
|
|
|
|
|
* [x] Hermit
|
|
|
|
|
* [ ] Herman's -> log into
|
|
|
|
|
* [x] **Heroes TM**
|
|
|
|
|
*/
|
|
|
|
|
await click(scMenu.el.querySelectorAll(".log_into")[1]);
|
|
|
|
|
assert.containsNone(scMenu.el, ".dropdown-menu", "dropdown is directly closed");
|
|
|
|
@@ -257,15 +257,15 @@ QUnit.module("SwitchCompanyMenu", (hooks) => {
|
|
|
|
|
function onPushState(url) {
|
|
|
|
|
assert.step(url.split("#")[1]);
|
|
|
|
|
}
|
|
|
|
|
Object.assign(browser.location, { hash: "cids=2%2C3" });
|
|
|
|
|
Object.assign(browser.location, { hash: "cids=2%2C1" });
|
|
|
|
|
const scMenu = await createSwitchCompanyMenu({ onPushState });
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [ ] Company 1
|
|
|
|
|
* [x] **Company 2**
|
|
|
|
|
* [x] Company 3
|
|
|
|
|
* [ ] Hermit
|
|
|
|
|
* [x] **Herman's**
|
|
|
|
|
* [x] Heroes TM
|
|
|
|
|
*/
|
|
|
|
|
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [2, 3]);
|
|
|
|
|
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [2, 1]);
|
|
|
|
|
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 2);
|
|
|
|
|
await click(scMenu.el.querySelector(".dropdown-toggle"));
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id]", 3);
|
|
|
|
@@ -273,13 +273,13 @@ QUnit.module("SwitchCompanyMenu", (hooks) => {
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id] .fa-square-o", 1);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [ ] Company 1
|
|
|
|
|
* [x] **Company 2**
|
|
|
|
|
* [x] Company 3 -> log into
|
|
|
|
|
* [ ] Hermit
|
|
|
|
|
* [x] **Herman's**
|
|
|
|
|
* [x] Heroes TM -> log into
|
|
|
|
|
*/
|
|
|
|
|
await click(scMenu.el.querySelectorAll(".log_into")[2]);
|
|
|
|
|
assert.containsNone(scMenu.el, ".dropdown-menu", "dropdown is directly closed");
|
|
|
|
|
assert.verifySteps(["cids=3%2C2"]);
|
|
|
|
|
assert.verifySteps(["cids=1%2C2"]);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
QUnit.test("companies can be logged in even if some toggled within delay", async (assert) => {
|
|
|
|
@@ -291,21 +291,21 @@ QUnit.module("SwitchCompanyMenu", (hooks) => {
|
|
|
|
|
const scMenu = await createSwitchCompanyMenu({ onPushState }, 50);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [x] **Company 1**
|
|
|
|
|
* [ ] Company 2
|
|
|
|
|
* [ ] Company 3
|
|
|
|
|
* [x] **Hermit**
|
|
|
|
|
* [ ] Herman's
|
|
|
|
|
* [ ] Heroes TM
|
|
|
|
|
*/
|
|
|
|
|
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [1]);
|
|
|
|
|
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 1);
|
|
|
|
|
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [3]);
|
|
|
|
|
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 3);
|
|
|
|
|
await click(scMenu.el.querySelector(".dropdown-toggle"));
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id]", 3);
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id] .fa-check-square", 1);
|
|
|
|
|
assert.containsN(scMenu.el, "[data-company-id] .fa-square-o", 2);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* [ ] **Company 1** -> toggled
|
|
|
|
|
* [ ] Company 2 -> logged in
|
|
|
|
|
* [ ] Company 3 -> toggled
|
|
|
|
|
* [ ] **Hermit** -> toggled
|
|
|
|
|
* [ ] Herman's -> logged in
|
|
|
|
|
* [ ] Heroes TM -> toggled
|
|
|
|
|
*/
|
|
|
|
|
await click(scMenu.el.querySelectorAll(".toggle_company")[2]);
|
|
|
|
|
await click(scMenu.el.querySelectorAll(".toggle_company")[0]);
|
|
|
|
|