mirror of
https://github.com/bringout/oca-ocb-core.git
synced 2026-04-20 09:52:02 +02:00
vanilla 17.0
This commit is contained in:
parent
d72e748793
commit
a9bcec8e91
1986 changed files with 1613876 additions and 568976 deletions
|
|
@ -19,6 +19,10 @@ import { session } from "@web/session";
|
|||
const serviceRegistry = registry.category("services");
|
||||
let target;
|
||||
|
||||
function toCIDS(...ids) {
|
||||
return `cids=${ids.join("-")}&_company_switching=1`;
|
||||
}
|
||||
|
||||
const ORIGINAL_TOGGLE_DELAY = MobileSwitchCompanyMenu.toggleDelay;
|
||||
async function createSwitchCompanyMenu(routerParams = {}, toggleDelay = 0) {
|
||||
patchWithCleanup(MobileSwitchCompanyMenu, { toggleDelay });
|
||||
|
|
@ -45,11 +49,12 @@ QUnit.module("MobileSwitchCompanyMenu", (hooks) => {
|
|||
target = getFixture();
|
||||
patchWithCleanup(session.user_companies, {
|
||||
allowed_companies: {
|
||||
1: { id: 1, name: "Hermit" },
|
||||
2: { id: 2, name: "Herman's" },
|
||||
3: { id: 3, name: "Heroes TM" },
|
||||
1: { id: 1, name: "Hermit", parent_id: false, child_ids: [] },
|
||||
2: { id: 2, name: "Herman's", parent_id: false, child_ids: [] },
|
||||
3: { id: 3, name: "Heroes TM", parent_id: false, child_ids: [] },
|
||||
},
|
||||
current_company: 1,
|
||||
disallowed_ancestor_companies: {},
|
||||
});
|
||||
serviceRegistry.add("ui", uiService);
|
||||
serviceRegistry.add("company", companyService);
|
||||
|
|
@ -105,7 +110,7 @@ QUnit.module("MobileSwitchCompanyMenu", (hooks) => {
|
|||
* [ ] Company 2
|
||||
* [ ] Company 3
|
||||
*/
|
||||
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [1]);
|
||||
assert.deepEqual(scMenu.env.services.company.activeCompanyIds, [1]);
|
||||
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 1);
|
||||
assert.containsN(scMenuEl, "[data-company-id]", 3);
|
||||
assert.containsN(scMenuEl, "[data-company-id] .fa-check-square", 1);
|
||||
|
|
@ -120,7 +125,7 @@ QUnit.module("MobileSwitchCompanyMenu", (hooks) => {
|
|||
assert.containsN(scMenuEl, "[data-company-id] .fa-check-square", 2);
|
||||
assert.containsN(scMenuEl, "[data-company-id] .fa-square-o", 1);
|
||||
await prom;
|
||||
assert.verifySteps(["cids=1%2C2"]);
|
||||
assert.verifySteps(["cids=1-2&_company_switching=1"]);
|
||||
});
|
||||
|
||||
QUnit.test("can toggle multiple companies at once", async (assert) => {
|
||||
|
|
@ -139,7 +144,7 @@ QUnit.module("MobileSwitchCompanyMenu", (hooks) => {
|
|||
* [ ] Company 2
|
||||
* [ ] Company 3
|
||||
*/
|
||||
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [1]);
|
||||
assert.deepEqual(scMenu.env.services.company.activeCompanyIds, [1]);
|
||||
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 1);
|
||||
assert.containsN(scMenuEl, "[data-company-id]", 3);
|
||||
assert.containsN(scMenuEl, "[data-company-id] .fa-check-square", 1);
|
||||
|
|
@ -158,7 +163,7 @@ QUnit.module("MobileSwitchCompanyMenu", (hooks) => {
|
|||
|
||||
assert.verifySteps([]);
|
||||
await prom; // await toggle promise
|
||||
assert.verifySteps(["cids=2%2C3"]);
|
||||
assert.verifySteps(["cids=2-3&_company_switching=1"]);
|
||||
});
|
||||
|
||||
QUnit.test("single company selected: toggling it off will keep it", async (assert) => {
|
||||
|
|
@ -178,7 +183,7 @@ QUnit.module("MobileSwitchCompanyMenu", (hooks) => {
|
|||
* [ ] Company 3
|
||||
*/
|
||||
assert.deepEqual(scMenu.env.services.router.current.hash, { cids: 1 });
|
||||
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [1]);
|
||||
assert.deepEqual(scMenu.env.services.company.activeCompanyIds, [1]);
|
||||
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 1);
|
||||
assert.containsN(scMenuEl, "[data-company-id]", 3);
|
||||
assert.containsN(scMenuEl, "[data-company-id] .fa-check-square", 1);
|
||||
|
|
@ -190,8 +195,11 @@ QUnit.module("MobileSwitchCompanyMenu", (hooks) => {
|
|||
* [ ] Company 3
|
||||
*/
|
||||
await click(scMenuEl.querySelectorAll(".toggle_company")[0]);
|
||||
assert.deepEqual(scMenu.env.services.router.current.hash, { cids: 1 });
|
||||
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [1]);
|
||||
assert.deepEqual(scMenu.env.services.router.current.hash, {
|
||||
cids: 1,
|
||||
_company_switching: 1,
|
||||
});
|
||||
assert.deepEqual(scMenu.env.services.company.activeCompanyIds, [1]);
|
||||
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 1);
|
||||
assert.containsN(scMenuEl, "[data-company-id] .fa-check-squarqe", 0);
|
||||
assert.containsN(scMenuEl, "[data-company-id] .fa-square-o", 3);
|
||||
|
|
@ -211,7 +219,7 @@ QUnit.module("MobileSwitchCompanyMenu", (hooks) => {
|
|||
* [ ] Company 2
|
||||
* [ ] Company 3
|
||||
*/
|
||||
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [1]);
|
||||
assert.deepEqual(scMenu.env.services.company.activeCompanyIds, [1]);
|
||||
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 1);
|
||||
assert.containsN(scMenuEl, "[data-company-id]", 3);
|
||||
assert.containsN(scMenuEl, "[data-company-id] .fa-check-square", 1);
|
||||
|
|
@ -223,7 +231,7 @@ QUnit.module("MobileSwitchCompanyMenu", (hooks) => {
|
|||
* [ ] Company 3
|
||||
*/
|
||||
await click(scMenuEl.querySelectorAll(".log_into")[1]);
|
||||
assert.verifySteps(["cids=2"]);
|
||||
assert.verifySteps(["cids=2&_company_switching=1"]);
|
||||
});
|
||||
|
||||
QUnit.test("multi company mode: log into a non selected company", async (assert) => {
|
||||
|
|
@ -232,7 +240,7 @@ QUnit.module("MobileSwitchCompanyMenu", (hooks) => {
|
|||
function onPushState(url) {
|
||||
assert.step(url.split("#")[1]);
|
||||
}
|
||||
Object.assign(browser.location, { hash: "cids=3%2C1" });
|
||||
Object.assign(browser.location, { hash: "cids=3-1" });
|
||||
const scMenu = await createSwitchCompanyMenu({ onPushState });
|
||||
const scMenuEl = target.querySelector(".o_burger_menu_companies");
|
||||
|
||||
|
|
@ -241,7 +249,7 @@ QUnit.module("MobileSwitchCompanyMenu", (hooks) => {
|
|||
* [ ] Company 2
|
||||
* [x] **Company 3**
|
||||
*/
|
||||
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [3, 1]);
|
||||
assert.deepEqual(scMenu.env.services.company.activeCompanyIds, [3, 1]);
|
||||
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 3);
|
||||
assert.containsN(scMenuEl, "[data-company-id]", 3);
|
||||
assert.containsN(scMenuEl, "[data-company-id] .fa-check-square", 2);
|
||||
|
|
@ -249,11 +257,11 @@ QUnit.module("MobileSwitchCompanyMenu", (hooks) => {
|
|||
|
||||
/**
|
||||
* [x] Company 1
|
||||
* [ ] Company 2 -> log into
|
||||
* [x] **Company 3**
|
||||
* [x] **Company 2** -> log into
|
||||
* [x] Company 3
|
||||
*/
|
||||
await click(scMenuEl.querySelectorAll(".log_into")[1]);
|
||||
assert.verifySteps(["cids=2%2C3%2C1"]);
|
||||
assert.verifySteps([toCIDS(2, 3, 1)]);
|
||||
});
|
||||
|
||||
QUnit.test("multi company mode: log into an already selected company", async (assert) => {
|
||||
|
|
@ -262,7 +270,7 @@ QUnit.module("MobileSwitchCompanyMenu", (hooks) => {
|
|||
function onPushState(url) {
|
||||
assert.step(url.split("#")[1]);
|
||||
}
|
||||
Object.assign(browser.location, { hash: "cids=2%2C3" });
|
||||
Object.assign(browser.location, { hash: "cids=2-3" });
|
||||
const scMenu = await createSwitchCompanyMenu({ onPushState });
|
||||
const scMenuEl = target.querySelector(".o_burger_menu_companies");
|
||||
|
||||
|
|
@ -271,7 +279,7 @@ QUnit.module("MobileSwitchCompanyMenu", (hooks) => {
|
|||
* [x] **Company 2**
|
||||
* [x] Company 3
|
||||
*/
|
||||
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [2, 3]);
|
||||
assert.deepEqual(scMenu.env.services.company.activeCompanyIds, [2, 3]);
|
||||
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 2);
|
||||
assert.containsN(scMenuEl, "[data-company-id]", 3);
|
||||
assert.containsN(scMenuEl, "[data-company-id] .fa-check-square", 2);
|
||||
|
|
@ -279,11 +287,11 @@ QUnit.module("MobileSwitchCompanyMenu", (hooks) => {
|
|||
|
||||
/**
|
||||
* [ ] Company 1
|
||||
* [x] **Company 2**
|
||||
* [x] Company 3 -> log into
|
||||
* [x] Company 2
|
||||
* [x] **Company 3** -> log into
|
||||
*/
|
||||
await click(scMenuEl.querySelectorAll(".log_into")[2]);
|
||||
assert.verifySteps(["cids=3%2C2"]);
|
||||
assert.verifySteps([toCIDS(3, 2)]);
|
||||
});
|
||||
|
||||
QUnit.test("companies can be logged in even if some toggled within delay", async (assert) => {
|
||||
|
|
@ -300,20 +308,23 @@ QUnit.module("MobileSwitchCompanyMenu", (hooks) => {
|
|||
* [ ] Company 2
|
||||
* [ ] Company 3
|
||||
*/
|
||||
assert.deepEqual(scMenu.env.services.company.allowedCompanyIds, [1]);
|
||||
assert.deepEqual(scMenu.env.services.company.activeCompanyIds, [1]);
|
||||
assert.strictEqual(scMenu.env.services.company.currentCompany.id, 1);
|
||||
assert.containsN(scMenuEl, "[data-company-id]", 3);
|
||||
assert.containsN(scMenuEl, "[data-company-id] .fa-check-square", 1);
|
||||
assert.containsN(scMenuEl, "[data-company-id] .fa-square-o", 2);
|
||||
|
||||
/**
|
||||
* [ ] **Company 1** -> toggled
|
||||
* [ ] Company 2 -> logged in
|
||||
* [ ] Company 3 -> toggled
|
||||
* [ ] **Company 1** -> 2) toggled
|
||||
* [x] Company 2 -> 3) logged in
|
||||
* [ ] Company 3 -> 1) toggled
|
||||
*/
|
||||
await click(scMenuEl.querySelectorAll(".toggle_company")[2]);
|
||||
await click(scMenuEl.querySelectorAll(".toggle_company")[0]);
|
||||
await click(scMenuEl.querySelectorAll(".log_into")[1]);
|
||||
assert.verifySteps(["cids=2"]);
|
||||
|
||||
// When "Company 2" is logged into, only one company is currently selected
|
||||
// so we treat it as single company mode
|
||||
assert.verifySteps([toCIDS(2)]);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue