stock/static/tests/popover_widget_tests.js

60 lines
2.1 KiB
JavaScript
Raw Permalink Normal View History

/** @odoo-module **/
import { getFixture, click } from "@web/../tests/helpers/utils";
import { makeView, setupViewRegistries } from "@web/../tests/views/helpers";
let target;
let serverData
QUnit.module('widgets', ()=> {
QUnit.module('PopoverWidget', hooks => {
hooks.beforeEach(()=>{
target = getFixture();
setupViewRegistries();
serverData = {
models: {
partner: {
fields: {
json_data: {string: " ", type: "char"},
},
records: [
{id:1, json_data:'{"color": "text-danger", "msg": "var that = self // why not?", "title": "JS Master"}'}
]
}
}
};
});
QUnit.test('Test creation/usage form popover widget', async assert => {
assert.expect(5);
await makeView({
type: "form",
resModel: "partner",
serverData,
arch: `
<form>
<field name="json_data" widget="popover_widget"/>
</form>`,
resId: 1,
});
assert.containsNone(target, 'div.popover', "Shouldn't have a popover container in DOM");
assert.containsOnce(target, 'a.fa.fa-info-circle.text-danger', "Should have a popover icon/button in red");
await click(target, 'a.fa.fa-info-circle.text-danger');
assert.containsOnce(target, 'div.popover', "Should have a popover icon/button in red");
assert.strictEqual(
target.querySelector("div.popover").innerHTML.includes("var that = self // why not?"),
true,
"The message should be in DOM"
);
assert.strictEqual(
target.querySelector("div.popover").innerHTML.includes("JS Master"),
true,
"The title should be in DOM"
);
});
});
});