/** @odoo-module **/
import {
click,
clickSave,
editInput,
getFixture,
} from "@web/../tests/helpers/utils";
import { createWebClient, doAction } from "@web/../tests/webclient/helpers";
let target;
let serverData;
QUnit.module("Planning", (hooks) => {
hooks.beforeEach(() => {
target = getFixture();
serverData = {
models: {
"planning.slot": {
fields: {
id: { string: "ID", type: "integer" },
name: { string: "Name", type: "char" },
},
records: [
{
id: 1,
name: "shift",
},
],
},
},
};
});
QUnit.module("Form");
QUnit.test("quit form view when save actually deletes", async function (assert) {
serverData.views = {
"planning.slot,false,form": '
',
"planning.slot,false,list": '',
"planning.slot,false,search": '',
};
const webClient = await createWebClient({
serverData,
mockRPC(route, args) {
if (args.method === "web_save") {
// Say a recurrence that repeats for ever.
// If, on the n'th occurrence, we change the recurrence to have max n-1 occurrences,
// then the n'th occurrence (which we just saved) is deleted.
return [];
}
},
});
await doAction(webClient, {
name: "Planning",
res_model: "planning.slot",
type: "ir.actions.act_window",
views: [
[false, "list"],
[false, "form"],
],
});
assert.containsOnce(target, ".o_action.o_view_controller.o_list_view");
await click(target.querySelector(".o_data_row .o_data_cell"));
assert.containsOnce(target, ".o_form_view");
await editInput(target, "[name='name'] input", "proute");
await clickSave(target);
assert.containsOnce(target, ".o_action.o_view_controller.o_list_view");
});
});