[FIX] component: props values are own property of props object

This commit is contained in:
Géry Debongnie
2022-06-03 16:39:16 +02:00
committed by aab-odoo
parent c7bd0ab85c
commit 5d5a530505
3 changed files with 57 additions and 1 deletions
@@ -551,6 +551,32 @@ exports[`basics props is set on root component 1`] = `
}"
`;
exports[`basics props value are own property of props object 1`] = `
"function anonymous(app, bdom, helpers
) {
let { text, createBlock, list, multi, html, toggler, component, comment } = bdom;
let block1 = createBlock(\`<span>simple vnode</span>\`);
return function template(ctx, node, key = \\"\\") {
return block1();
}
}"
`;
exports[`basics props value are own property of props object, even with default values 1`] = `
"function anonymous(app, bdom, helpers
) {
let { text, createBlock, list, multi, html, toggler, component, comment } = bdom;
let block1 = createBlock(\`<span>simple vnode</span>\`);
return function template(ctx, node, key = \\"\\") {
return block1();
}
}"
`;
exports[`basics reconciliation alg is not confused in some specific situation 1`] = `
"function anonymous(app, bdom, helpers
) {
+30
View File
@@ -129,6 +129,36 @@ describe("basics", () => {
await app.mount(fixture);
});
test("props value are own property of props object", async () => {
expect.assertions(2);
const p = { a: 1 };
class Test extends Component {
static template = xml`<span>simple vnode</span>`;
setup() {
expect(Object.prototype.hasOwnProperty.call(this.props, "a")).toBe(true);
}
}
const app = new App(Test, { props: p });
await app.mount(fixture);
});
test("props value are own property of props object, even with default values", async () => {
expect.assertions(3);
const p = { a: 1 };
class Test extends Component {
static template = xml`<span>simple vnode</span>`;
static defaultProps = { b: 1 };
setup() {
expect(Object.prototype.hasOwnProperty.call(this.props, "a")).toBe(true);
expect(Object.prototype.hasOwnProperty.call(this.props, "b")).toBe(true);
}
}
const app = new App(Test, { props: p });
await app.mount(fixture);
});
test("some simple sanity checks (el/status)", async () => {
expect.assertions(3);
class Test extends Component {