mirror of
https://github.com/bringout/oca-ocb-accounting.git
synced 2026-04-22 17:02:06 +02:00
19.0 vanilla
This commit is contained in:
parent
ba20ce7443
commit
768b70e05e
2357 changed files with 1057103 additions and 712486 deletions
|
|
@ -0,0 +1,155 @@
|
|||
import { describe, expect, test } from "@odoo/hoot";
|
||||
import { registries, constants } from "@odoo/o-spreadsheet";
|
||||
import { selectCell, setCellContent } from "@spreadsheet/../tests/helpers/commands";
|
||||
import { createModelWithDataSource } from "@spreadsheet/../tests/helpers/model";
|
||||
import { doMenuAction } from "@spreadsheet/../tests/helpers/ui";
|
||||
import { waitForDataLoaded } from "@spreadsheet/helpers/model";
|
||||
import {
|
||||
defineSpreadsheetAccountModels,
|
||||
getAccountingData,
|
||||
} from "@spreadsheet_account/../tests/accounting_test_data";
|
||||
import { mockService } from "@web/../tests/web_test_helpers";
|
||||
|
||||
describe.current.tags("headless");
|
||||
defineSpreadsheetAccountModels();
|
||||
|
||||
const { cellMenuRegistry } = registries;
|
||||
const { DEFAULT_LOCALE } = constants;
|
||||
|
||||
const serverData = getAccountingData();
|
||||
|
||||
test("Create drill down domain", async () => {
|
||||
const drillDownAction = {
|
||||
type: "ir.actions.act_window",
|
||||
res_model: "account.move.line",
|
||||
view_mode: "list",
|
||||
views: [[false, "list"]],
|
||||
target: "current",
|
||||
domain: [["account_id", "in", [1, 2]]],
|
||||
name: "my awesome action",
|
||||
};
|
||||
const fakeActionService = {
|
||||
doAction: async (action, options) => {
|
||||
expect.step("drill down action");
|
||||
expect(action).toEqual(drillDownAction);
|
||||
expect(options).toEqual({ newWindow: undefined });
|
||||
return true;
|
||||
},
|
||||
};
|
||||
mockService("action", fakeActionService);
|
||||
|
||||
const { model } = await createModelWithDataSource({
|
||||
serverData,
|
||||
mockRPC: async function (route, args) {
|
||||
if (args.method === "spreadsheet_move_line_action") {
|
||||
expect(args.args).toEqual([
|
||||
{
|
||||
codes: ["100"],
|
||||
company_id: null,
|
||||
include_unposted: false,
|
||||
date_range: {
|
||||
range_type: "year",
|
||||
year: 2020,
|
||||
},
|
||||
},
|
||||
]);
|
||||
return drillDownAction;
|
||||
}
|
||||
},
|
||||
});
|
||||
const env = model.config.custom.env;
|
||||
env.model = model;
|
||||
setCellContent(model, "A1", `=ODOO.BALANCE("100", 2020)`);
|
||||
setCellContent(model, "A2", `=ODOO.BALANCE("100", 0)`);
|
||||
setCellContent(model, "A3", `=ODOO.BALANCE("100", 2020, , , FALSE)`);
|
||||
setCellContent(model, "A4", `=ODOO.BALANCE("100", 2020, , , )`);
|
||||
// Does not affect non formula cells
|
||||
setCellContent(model, "A5", `5`);
|
||||
await waitForDataLoaded(model);
|
||||
selectCell(model, "A1");
|
||||
const root = cellMenuRegistry
|
||||
.getMenuItems()
|
||||
.find((item) => item.id === "move_lines_see_records");
|
||||
expect(root.isVisible(env)).toBe(true);
|
||||
await root.execute(env);
|
||||
expect.verifySteps(["drill down action"]);
|
||||
selectCell(model, "A2");
|
||||
expect(root.isVisible(env)).toBe(false);
|
||||
selectCell(model, "A3");
|
||||
expect(root.isVisible(env)).toBe(true);
|
||||
await root.execute(env);
|
||||
expect.verifySteps(["drill down action"]);
|
||||
selectCell(model, "A4");
|
||||
expect(root.isVisible(env)).toBe(true);
|
||||
await root.execute(env);
|
||||
expect.verifySteps(["drill down action"]);
|
||||
selectCell(model, "A5");
|
||||
expect(root.isVisible(env)).toBe(false);
|
||||
});
|
||||
|
||||
test("Create drill down domain when month date is a reference", async () => {
|
||||
mockService("action", { doAction: () => {} });
|
||||
const { model } = await createModelWithDataSource({
|
||||
serverData,
|
||||
mockRPC: async function (route, args) {
|
||||
if (args.method === "spreadsheet_move_line_action") {
|
||||
expect.step("spreadsheet_move_line_action");
|
||||
expect(args.args).toEqual([
|
||||
{
|
||||
codes: ["100"],
|
||||
company_id: null,
|
||||
include_unposted: false,
|
||||
date_range: {
|
||||
month: 2,
|
||||
range_type: "month",
|
||||
year: 2024,
|
||||
},
|
||||
},
|
||||
]);
|
||||
return {};
|
||||
}
|
||||
},
|
||||
});
|
||||
const env = model.config.custom.env;
|
||||
env.model = model;
|
||||
setCellContent(model, "A1", "02/2024");
|
||||
setCellContent(model, "A2", '=ODOO.BALANCE("100", A1)');
|
||||
await waitForDataLoaded(model);
|
||||
selectCell(model, "A2");
|
||||
await doMenuAction(cellMenuRegistry, ["move_lines_see_records"], env);
|
||||
expect.verifySteps(["spreadsheet_move_line_action"]);
|
||||
});
|
||||
|
||||
test("Create drill down domain when date uses a non-standard locale", async () => {
|
||||
mockService("action", { doAction: () => {} });
|
||||
const { model } = await createModelWithDataSource({
|
||||
serverData,
|
||||
mockRPC: async function (route, args) {
|
||||
if (args.method === "spreadsheet_move_line_action") {
|
||||
expect.step("spreadsheet_move_line_action");
|
||||
expect(args.args).toEqual([
|
||||
{
|
||||
codes: ["100"],
|
||||
company_id: null,
|
||||
include_unposted: false,
|
||||
date_range: {
|
||||
range_type: "day",
|
||||
year: 2002,
|
||||
month: 2,
|
||||
day: 1,
|
||||
},
|
||||
},
|
||||
]);
|
||||
return {};
|
||||
}
|
||||
},
|
||||
});
|
||||
const env = model.config.custom.env;
|
||||
env.model = model;
|
||||
const myLocale = { ...DEFAULT_LOCALE, dateFormat: "d/mmm/yyyy" };
|
||||
model.dispatch("UPDATE_LOCALE", { locale: myLocale });
|
||||
setCellContent(model, "A1", '=ODOO.BALANCE("100", DATE(2002, 2, 1))');
|
||||
await waitForDataLoaded(model);
|
||||
await doMenuAction(cellMenuRegistry, ["move_lines_see_records"], env);
|
||||
expect.verifySteps(["spreadsheet_move_line_action"]);
|
||||
});
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
/** @odoo-module */
|
||||
|
||||
import { selectCell, setCellContent } from "@spreadsheet/../tests/utils/commands";
|
||||
import spreadsheet from "@spreadsheet/o_spreadsheet/o_spreadsheet_extended";
|
||||
import { getAccountingData } from "../accounting_test_data";
|
||||
import {
|
||||
createModelWithDataSource,
|
||||
waitForDataSourcesLoaded,
|
||||
} from "@spreadsheet/../tests/utils/model";
|
||||
import { registry } from "@web/core/registry";
|
||||
|
||||
const { cellMenuRegistry } = spreadsheet.registries;
|
||||
|
||||
let serverData;
|
||||
|
||||
function beforeEach() {
|
||||
serverData = getAccountingData();
|
||||
}
|
||||
|
||||
QUnit.module("spreadsheet_account > Accounting Drill down", { beforeEach }, () => {
|
||||
QUnit.test("Create drill down domain", async (assert) => {
|
||||
const drillDownAction = {
|
||||
type: "ir.actions.act_window",
|
||||
res_model: "account.move.line",
|
||||
view_mode: "list",
|
||||
views: [[false, "list"]],
|
||||
target: "current",
|
||||
domain: [["account_id", "in", [1, 2]]],
|
||||
name: "my awesome action",
|
||||
};
|
||||
const fakeActionService = {
|
||||
name: "action",
|
||||
start() {
|
||||
return {
|
||||
async doAction(action, options) {
|
||||
assert.step("drill down action");
|
||||
assert.deepEqual(action, drillDownAction);
|
||||
assert.equal(options, undefined);
|
||||
return true;
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
registry.category("services").add("action", fakeActionService, { force: true });
|
||||
|
||||
const model = await createModelWithDataSource({
|
||||
serverData,
|
||||
mockRPC: async function (route, args) {
|
||||
if (args.method === "spreadsheet_move_line_action") {
|
||||
assert.deepEqual(args.args, [
|
||||
{
|
||||
codes: ["100"],
|
||||
company_id: null,
|
||||
include_unposted: false,
|
||||
date_range: {
|
||||
range_type: "year",
|
||||
year: 2020,
|
||||
},
|
||||
},
|
||||
]);
|
||||
return drillDownAction;
|
||||
}
|
||||
},
|
||||
});
|
||||
const env = model.config.evalContext.env;
|
||||
env.model = model;
|
||||
setCellContent(model, "A1", `=ODOO.BALANCE("100", 2020)`);
|
||||
setCellContent(model, "A2", `=ODOO.BALANCE("100", 0)`);
|
||||
setCellContent(model, "A3", `=ODOO.BALANCE("100", 2020, , , FALSE)`);
|
||||
setCellContent(model, "A4", `=ODOO.BALANCE("100", 2020, , , )`);
|
||||
await waitForDataSourcesLoaded(model);
|
||||
selectCell(model, "A1");
|
||||
const root = cellMenuRegistry.getAll().find((item) => item.id === "move_lines_see_records");
|
||||
assert.equal(root.isVisible(env), true);
|
||||
await root.action(env);
|
||||
assert.verifySteps(["drill down action"]);
|
||||
selectCell(model, "A2");
|
||||
assert.equal(root.isVisible(env), false);
|
||||
selectCell(model, "A3");
|
||||
assert.equal(root.isVisible(env), true);
|
||||
await root.action(env);
|
||||
assert.verifySteps(["drill down action"]);
|
||||
selectCell(model, "A4");
|
||||
assert.equal(root.isVisible(env), true);
|
||||
await root.action(env);
|
||||
assert.verifySteps(["drill down action"]);
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue