bus/static/tests/simple_notification_tests.js

70 lines
2.8 KiB
JavaScript
Raw Normal View History

2024-05-03 15:03:07 +03:00
/* @odoo-module */
import { simpleNotificationService } from "@bus/simple_notification_service";
import { addBusServicesToRegistry } from "@bus/../tests/helpers/test_utils";
import { startServer } from "@bus/../tests/helpers/mock_python_environment";
import { registry } from "@web/core/registry";
import { browser } from "@web/core/browser/browser";
import { patchWithCleanup } from "@web/../tests/helpers/utils";
import { contains } from "@web/../tests/utils";
import { createWebClient } from "@web/../tests/webclient/helpers";
QUnit.module("simple_notification");
QUnit.test("receive and display simple notification with message", async () => {
const pyEnv = await startServer();
addBusServicesToRegistry();
registry.category("services").add("simple_notification", simpleNotificationService);
await createWebClient({});
pyEnv["bus.bus"]._sendone(pyEnv.currentPartner, "simple_notification", {
message: "simple notification",
});
await contains(".o_notification_content", { text: "simple notification" });
});
QUnit.test("receive and display simple notification with title", async () => {
const pyEnv = await startServer();
addBusServicesToRegistry();
registry.category("services").add("simple_notification", simpleNotificationService);
await createWebClient({});
pyEnv["bus.bus"]._sendone(pyEnv.currentPartner, "simple_notification", {
message: "simple notification",
title: "simple title",
});
await contains(".o_notification_title", { text: "simple title" });
});
QUnit.test("receive and display simple notification with specific type", async () => {
const pyEnv = await startServer();
addBusServicesToRegistry();
registry.category("services").add("simple_notification", simpleNotificationService);
await createWebClient({});
pyEnv["bus.bus"]._sendone(pyEnv.currentPartner, "simple_notification", {
message: "simple notification",
type: "info",
});
await contains(".o_notification.border-info");
});
QUnit.test("receive and display simple notification as sticky", async () => {
const pyEnv = await startServer();
addBusServicesToRegistry();
registry.category("services").add("simple_notification", simpleNotificationService);
await createWebClient({});
patchWithCleanup(browser, {
setTimeout(fn) {
/**
* Non-sticky notifications are removed after a delay. If thenotification is still
* present when this delay is set to 0 it means it is a sticky one.
*/
return super.setTimeout(fn, 0);
},
});
pyEnv["bus.bus"]._sendone(pyEnv.currentPartner, "simple_notification", {
message: "simple notification",
sticky: true,
});
await contains(".o_notification");
});