mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
b242230e20
Previously, if two attributes in t-att-class shared some classes, their presence would be determined by the last attribute declared, instead of being present if any attribute containing it evaluates to true. This commit fixes that.
37 lines
1.3 KiB
TypeScript
37 lines
1.3 KiB
TypeScript
import { QWeb } from "../../src/qweb/index";
|
|
import { renderToString } from "../helpers";
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Setup and helpers
|
|
//------------------------------------------------------------------------------
|
|
|
|
function render(template, context = {}) {
|
|
const qweb = new QWeb();
|
|
qweb.addTemplate("test", template);
|
|
return renderToString(qweb, "test", context);
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Tests
|
|
//------------------------------------------------------------------------------
|
|
|
|
describe("qweb t-att", () => {
|
|
test("t-att-class with multiple classes", () => {
|
|
expect(render(`<div t-att-class="{'a b c': value}" />`, { value: true })).toBe(
|
|
'<div class="a b c"></div>'
|
|
);
|
|
expect(render(`<div t-att-class="{['a b c']: value}" />`, { value: true })).toBe(
|
|
'<div class="a b c"></div>'
|
|
);
|
|
});
|
|
|
|
test("t-att-class with multiple classes, some of which are duplicate", () => {
|
|
expect(render(`<div t-att-class="{'a b c': value, 'a b d': !value}" />`, { value: true })).toBe(
|
|
'<div class="a b c"></div>'
|
|
);
|
|
expect(render(`<div t-att-class="{'a b c': value, 'a b d': !value}" />`, { value: false })).toBe(
|
|
'<div class="a b d"></div>'
|
|
);
|
|
});
|
|
});
|