bus/static/tests/assets_watchdog_tests.js

36 lines
1.4 KiB
JavaScript
Raw Normal View History

2024-05-03 15:03:07 +03:00
/* @odoo-module */
import { getPyEnv, startServer } from "@bus/../tests/helpers/mock_python_environment";
import { addBusServicesToRegistry } from "@bus/../tests/helpers/test_utils";
import { assetsWatchdogService } from "@bus/services/assets_watchdog_service";
import { patchWithCleanup } from "@web/../tests/helpers/utils";
import { click, contains } from "@web/../tests/utils";
import { createWebClient } from "@web/../tests/webclient/helpers";
import { browser } from "@web/core/browser/browser";
import { registry } from "@web/core/registry";
QUnit.module("Bus Assets WatchDog");
QUnit.test("can listen on bus and displays notifications in DOM", async (assert) => {
await startServer();
addBusServicesToRegistry();
registry.category("services").add("assetsWatchdog", assetsWatchdogService);
patchWithCleanup(browser, {
setTimeout(fn) {
return super.setTimeout(fn, 0);
},
location: {
reload: () => assert.step("reloadPage"),
},
});
await createWebClient({});
const pyEnv = await getPyEnv();
pyEnv["bus.bus"]._sendone("broadcast", "bundle_changed", {
server_version: "NEW_MAJOR_VERSION",
});
await contains(".o_notification", { text: "The page appears to be out of date." });
await click(".o_notification_buttons .btn-primary", { text: "Refresh" });
assert.verifySteps(["reloadPage"]);
});