Odoo18-Base/addons/mail/static/tests/thread/file_upload.test.js

52 lines
2.0 KiB
JavaScript
Raw Permalink Normal View History

2025-01-06 10:57:38 +07:00
import {
click,
contains,
defineMailModels,
inputFiles,
openDiscuss,
openFormView,
start,
startServer,
} from "@mail/../tests/mail_test_helpers";
import { describe, test } from "@odoo/hoot";
import { Deferred } from "@odoo/hoot-mock";
import { onRpc } from "@web/../tests/web_test_helpers";
describe.current.tags("desktop");
defineMailModels();
test("no conflicts between file uploads", async () => {
const pyEnv = await startServer();
const partnerId = pyEnv["res.partner"].create({});
const channelId = pyEnv["discuss.channel"].create({});
const text = new File(["hello, world"], "text1.txt", { type: "text/plain" });
const text2 = new File(["hello, world"], "text2.txt", { type: "text/plain" });
pyEnv["mail.message"].create({
body: "not empty",
model: "discuss.channel",
res_id: channelId,
});
await start();
// Uploading file in the first thread: res.partner chatter.
await openFormView("res.partner", partnerId);
await click("button", { text: "Send message" });
await inputFiles(".o-mail-Chatter .o-mail-Composer input[type=file]", [text]);
// Uploading file in the second thread: discuss.channel in chatWindow.
await click("i[aria-label='Messages']");
await click(".o-mail-NotificationItem");
await inputFiles(".o-mail-ChatWindow .o-mail-Composer input[type=file]", [text2]);
await contains(".o-mail-Chatter .o-mail-AttachmentCard");
await contains(".o-mail-ChatWindow .o-mail-AttachmentCard");
});
test("Attachment shows spinner during upload", async () => {
const pyEnv = await startServer();
const channelId = pyEnv["discuss.channel"].create({ name: "channel_1" });
const text2 = new File(["hello, world"], "text2.txt", { type: "text/plain" });
onRpc("/mail/attachment/upload", () => new Deferred()); // never fulfill the attachment upload promise.
await start();
await openDiscuss(channelId);
await inputFiles(".o-mail-Composer input[type=file]", [text2]);
await contains(".o-mail-AttachmentCard .fa-spinner");
});