[IMP] web_editor: make mocha tests odoo modules

In order to be able to use web dependencies for mocha tests, convert every
existing test to an `@odoo-module` and make a new asset
`web_editor.mocha_tests` that will be used for tests in `/web_editor/tests`

Task-2821374

Part-of: odoo/odoo#104680
This commit is contained in:
abd-msyukyu-odoo
2023-04-20 10:51:21 +02:00
parent 40b762a69f
commit f04b8191c8
20 changed files with 73 additions and 26 deletions
+9
View File
@@ -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',
@@ -1,3 +1,5 @@
/** @odoo-module */
export const qwebSample = /* xml */ `
<h1>Qweb examples</h1>
<div>
@@ -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//', '<b class="zws">zws</b>');
errorElHtml = errorElHtml.replaceAll('//TAB//', '<b class="tab">Tab</b>');
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//', '<b class="zws">zws</b>');
errorElHtml = errorElHtml.replaceAll('//TAB//', '<b class="tab">Tab</b>');
errorEl.outerHTML = errorElHtml;
});
} else {
console.log('test successful');
}
});
});
@@ -1,3 +1,5 @@
/** @odoo-module */
import { BasicEditor, testEditor } from '../utils.js';
const justifyLeft = async function (editor) {
@@ -1,3 +1,5 @@
/** @odoo-module */
import { BasicEditor, testEditor } from '../utils.js';
const timeoutPromise = ms =>
@@ -1,3 +1,5 @@
/** @odoo-module */
import { OdooEditor, parseHTML, setSelection } from '../../src/OdooEditor.js';
import {
insertCharsAt,
@@ -1,3 +1,5 @@
/** @odoo-module */
import { BasicEditor, testEditor } from '../utils.js';
const setColor = (color, mode) => {
@@ -1,3 +1,5 @@
/** @odoo-module */
import {
BasicEditor,
testEditor,
@@ -1,3 +1,5 @@
/** @odoo-module */
import { OdooEditor } from '../../src/OdooEditor.js';
import {
getTraversedNodes,
@@ -1,3 +1,5 @@
/** @odoo-module */
import { BasicEditor, insertText, testEditor, deleteForward, deleteBackward } from '../utils.js';
describe('FontAwesome', () => {
@@ -1,3 +1,5 @@
/** @odoo-module */
import { isSelectionFormat } from '../../src/utils/utils.js';
import { BasicEditor, testEditor, setTestSelection, Direction, unformat } from '../utils.js';
@@ -1,3 +1,5 @@
/** @odoo-module */
import { parseHTML } from '../../src/utils/utils.js';
import { BasicEditor, testEditor, unformat, insertText, deleteBackward } from '../utils.js';
@@ -1,3 +1,5 @@
/** @odoo-module */
import { URL_REGEX, URL_REGEX_WITH_INFOS } from '../../src/OdooEditor.js';
import {
BasicEditor,
@@ -1,3 +1,5 @@
/** @odoo-module */
import {
BasicEditor,
click,
@@ -1,3 +1,5 @@
/** @odoo-module */
import { BasicEditor, testEditor, unformat } from '../utils.js';
describe('Odoo fields', () => {
@@ -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';
@@ -1,3 +1,5 @@
/** @odoo-module */
import {
BasicEditor,
deleteBackward,
@@ -1,3 +1,5 @@
/** @odoo-module */
import { URL_REGEX, URL_REGEX_WITH_INFOS } from '../../src/OdooEditor.js';
describe('urlRegex', () => {
@@ -1,3 +1,5 @@
/** @odoo-module */
import {
ancestors,
boundariesIn,
+1 -1
View File
@@ -187,7 +187,7 @@
<script src="/web_editor/static/src/js/editor/odoo-editor/test/lib/mocha.js"></script>
<script src="/web_editor/static/src/js/editor/odoo-editor/test/lib/chai.js"></script>
<script>mocha.setup('bdd').fullTrace()</script>
<script src="/web_editor/static/src/js/editor/odoo-editor/test/editor-test.js" type="module"></script>
<t t-call-assets="web_editor.mocha_tests"/>
</t>
<div id="mocha"></div>
<div id="editor-test-container"></div>