diff --git a/addons/web_editor/__manifest__.py b/addons/web_editor/__manifest__.py
index cf0d09a5009..3bc1544c8db 100644
--- a/addons/web_editor/__manifest__.py
+++ b/addons/web_editor/__manifest__.py
@@ -171,6 +171,15 @@ Odoo Web Editor widget.
'web_editor/static/tests/**/*',
'web_editor/static/src/js/editor/odoo-editor/test/utils.js'
],
+ 'web_editor.mocha_tests': [
+ 'web/static/src/legacy/js/promise_extension.js',
+ 'web/static/src/boot.js',
+ # insert module dependencies here
+
+ 'web_editor/static/src/js/editor/odoo-editor/src/**/*js',
+ 'web_editor/static/src/js/editor/odoo-editor/test/spec/*js',
+ 'web_editor/static/src/js/editor/odoo-editor/test/*js',
+ ],
},
'auto_install': True,
'license': 'LGPL-3',
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/src/qweb_sample.js b/addons/web_editor/static/src/js/editor/odoo-editor/src/qweb_sample.js
index 7b6ddec23f8..cbdcdaa4ba0 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/src/qweb_sample.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/src/qweb_sample.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
export const qwebSample = /* xml */ `
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/editor-test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/editor-test.js
index 3ec76aed5f7..a518e6b5ca8 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/editor-test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/editor-test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import './spec/utils.test.js';
import './spec/align.test.js';
import './spec/color.test.js';
@@ -16,31 +18,33 @@ import './spec/odooFields.test.js';
import './spec/powerbox.test.js';
/* global mocha */
-mocha.run(failures => {
- if (failures) {
- for (const faillureElement of [...document.querySelectorAll('.test.fail')]) {
- const clonedFaillureElement = faillureElement.cloneNode(true);
- clonedFaillureElement.querySelector('a').remove();
- console.error(
- [
- clonedFaillureElement.querySelector('h2').innerText,
- clonedFaillureElement.querySelector('.error').innerText,
- ].join('\n\n'),
- );
+window.addEventListener("load", () => {
+ mocha.run(failures => {
+ if (failures) {
+ for (const faillureElement of [...document.querySelectorAll('.test.fail')]) {
+ const clonedFaillureElement = faillureElement.cloneNode(true);
+ clonedFaillureElement.querySelector('a').remove();
+ console.error(
+ [
+ clonedFaillureElement.querySelector('h2').innerText,
+ clonedFaillureElement.querySelector('.error').innerText,
+ ].join('\n\n'),
+ );
+ }
+
+ // Better visualisation of invisible (ZWS & TABS) character in test
+ // report.
+ const report = document.querySelector("#mocha-report");
+ const allErrors = report.querySelectorAll('.test.fail .error');
+ allErrors.forEach((errorEl) => {
+ let errorElHtml = errorEl.outerHTML
+ errorElHtml = errorElHtml.replaceAll('//zws//', '
zws');
+ errorElHtml = errorElHtml.replaceAll('//TAB//', '
Tab');
+ errorEl.outerHTML = errorElHtml;
+ });
+ } else {
+ console.log('test successful');
}
- // Better visualisation of invisible (ZWS & TABS) character in test
- // report.
- const report = document.querySelector("#mocha-report");
- const allErrors = report.querySelectorAll('.test.fail .error');
- allErrors.forEach((errorEl) => {
- let errorElHtml = errorEl.outerHTML
- errorElHtml = errorElHtml.replaceAll('//zws//', '
zws');
- errorElHtml = errorElHtml.replaceAll('//TAB//', '
Tab');
- errorEl.outerHTML = errorElHtml;
- });
- } else {
- console.log('test successful');
- }
-
+ });
});
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/align.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/align.test.js
index fa35cfb2a42..bab895ad440 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/align.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/align.test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import { BasicEditor, testEditor } from '../utils.js';
const justifyLeft = async function (editor) {
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/autostep.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/autostep.test.js
index ec69e6b7e6e..f42ee1ce729 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/autostep.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/autostep.test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import { BasicEditor, testEditor } from '../utils.js';
const timeoutPromise = ms =>
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/collab.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/collab.test.js
index fb1453ca967..fbccfbfe268 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/collab.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/collab.test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import { OdooEditor, parseHTML, setSelection } from '../../src/OdooEditor.js';
import {
insertCharsAt,
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/color.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/color.test.js
index 20220caaacf..aebd678e0af 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/color.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/color.test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import { BasicEditor, testEditor } from '../utils.js';
const setColor = (color, mode) => {
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/copyPaste.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/copyPaste.test.js
index 3dbd4c189e9..d07876b5ebb 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/copyPaste.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/copyPaste.test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import {
BasicEditor,
testEditor,
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/editor.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/editor.test.js
index e368faaf5b1..b173428ecb9 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/editor.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/editor.test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import { OdooEditor } from '../../src/OdooEditor.js';
import {
getTraversedNodes,
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/fontAwesome.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/fontAwesome.test.js
index 40522c23166..7089921bdd3 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/fontAwesome.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/fontAwesome.test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import { BasicEditor, insertText, testEditor, deleteForward, deleteBackward } from '../utils.js';
describe('FontAwesome', () => {
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/format.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/format.test.js
index d4563e92fb9..f086d40c1ba 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/format.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/format.test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import { isSelectionFormat } from '../../src/utils/utils.js';
import { BasicEditor, testEditor, setTestSelection, Direction, unformat } from '../utils.js';
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/insert.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/insert.test.js
index 08e1b83b099..e6438d5ac1a 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/insert.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/insert.test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import { parseHTML } from '../../src/utils/utils.js';
import { BasicEditor, testEditor, unformat, insertText, deleteBackward } from '../utils.js';
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/link.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/link.test.js
index 50ce2b31ca3..819b7e5e2fc 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/link.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/link.test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import { URL_REGEX, URL_REGEX_WITH_INFOS } from '../../src/OdooEditor.js';
import {
BasicEditor,
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/list.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/list.test.js
index dbb42fba1ab..5f456382c6b 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/list.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/list.test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import {
BasicEditor,
click,
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/odooFields.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/odooFields.test.js
index f2af54e924a..b3ab2dcc6be 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/odooFields.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/odooFields.test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import { BasicEditor, testEditor, unformat } from '../utils.js';
describe('Odoo fields', () => {
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/powerbox.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/powerbox.test.js
index a0d79ae9b81..4efaad731ed 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/powerbox.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/powerbox.test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import { setSelection } from '../../src/OdooEditor.js';
import { Powerbox } from '../../src/powerbox/Powerbox.js';
import { BasicEditor, insertText, testEditor, triggerEvent } from '../utils.js';
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/tabs.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/tabs.test.js
index 7210b6f25e8..fe765bdcd3b 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/tabs.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/tabs.test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import {
BasicEditor,
deleteBackward,
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/urlRegex.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/urlRegex.test.js
index a111d80de21..2d0dc6e80f7 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/urlRegex.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/urlRegex.test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import { URL_REGEX, URL_REGEX_WITH_INFOS } from '../../src/OdooEditor.js';
describe('urlRegex', () => {
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/utils.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/utils.test.js
index 3cc3c5c4aeb..a10b2989724 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/utils.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/utils.test.js
@@ -1,3 +1,5 @@
+/** @odoo-module */
+
import {
ancestors,
boundariesIn,
diff --git a/addons/web_editor/views/editor.xml b/addons/web_editor/views/editor.xml
index 8d84cf93ccb..952d37390b0 100644
--- a/addons/web_editor/views/editor.xml
+++ b/addons/web_editor/views/editor.xml
@@ -187,7 +187,7 @@
-
+