mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
[IMP] qweb: t-props directive
We reimplement the directive "t-props" and add some tests for it.
This commit is contained in:
committed by
Géry Debongnie
parent
700d574314
commit
ba2fe3ff55
@@ -699,6 +699,7 @@ describe("qweb parser", () => {
|
||||
isDynamic: false,
|
||||
name: "Comp",
|
||||
handlers: {},
|
||||
dynamicProps: null,
|
||||
props: {},
|
||||
slots: {},
|
||||
},
|
||||
@@ -824,6 +825,7 @@ describe("qweb parser", () => {
|
||||
expect(parse(`<MyComponent />`)).toEqual({
|
||||
type: ASTType.TComponent,
|
||||
name: "MyComponent",
|
||||
dynamicProps: null,
|
||||
props: {},
|
||||
handlers: {},
|
||||
slots: {},
|
||||
@@ -835,6 +837,7 @@ describe("qweb parser", () => {
|
||||
expect(parse(`<MyComponent a="1" b="'b'"/>`)).toEqual({
|
||||
type: ASTType.TComponent,
|
||||
name: "MyComponent",
|
||||
dynamicProps: null,
|
||||
props: { a: "1", b: "'b'" },
|
||||
handlers: {},
|
||||
isDynamic: false,
|
||||
@@ -842,10 +845,23 @@ describe("qweb parser", () => {
|
||||
});
|
||||
});
|
||||
|
||||
test("component with t-props", async () => {
|
||||
expect(parse(`<MyComponent t-props="state" a="1"/>`)).toEqual({
|
||||
type: ASTType.TComponent,
|
||||
name: "MyComponent",
|
||||
dynamicProps: "state",
|
||||
props: { a: "1" },
|
||||
handlers: {},
|
||||
isDynamic: false,
|
||||
slots: {},
|
||||
});
|
||||
});
|
||||
|
||||
test("component with event handler", async () => {
|
||||
expect(parse(`<MyComponent t-on-click="someMethod"/>`)).toEqual({
|
||||
type: ASTType.TComponent,
|
||||
name: "MyComponent",
|
||||
dynamicProps: null,
|
||||
props: {},
|
||||
handlers: { click: "someMethod" },
|
||||
isDynamic: false,
|
||||
@@ -857,6 +873,7 @@ describe("qweb parser", () => {
|
||||
expect(parse(`<MyComponent>foo</MyComponent>`)).toEqual({
|
||||
type: ASTType.TComponent,
|
||||
name: "MyComponent",
|
||||
dynamicProps: null,
|
||||
props: {},
|
||||
isDynamic: false,
|
||||
handlers: {},
|
||||
@@ -869,6 +886,7 @@ describe("qweb parser", () => {
|
||||
type: ASTType.TComponent,
|
||||
name: "MyComponent",
|
||||
isDynamic: false,
|
||||
dynamicProps: null,
|
||||
props: {},
|
||||
handlers: {},
|
||||
slots: {
|
||||
@@ -888,6 +906,7 @@ describe("qweb parser", () => {
|
||||
type: ASTType.TComponent,
|
||||
name: "MyComponent",
|
||||
isDynamic: false,
|
||||
dynamicProps: null,
|
||||
props: {},
|
||||
handlers: {},
|
||||
slots: { name: { type: ASTType.Text, value: "foo" } },
|
||||
@@ -898,6 +917,7 @@ describe("qweb parser", () => {
|
||||
expect(parse(`<MyComponent><t t-set-slot="name">foo</t> </MyComponent>`)).toEqual({
|
||||
type: ASTType.TComponent,
|
||||
name: "MyComponent",
|
||||
dynamicProps: null,
|
||||
props: {},
|
||||
isDynamic: false,
|
||||
handlers: {},
|
||||
@@ -917,6 +937,7 @@ describe("qweb parser", () => {
|
||||
expect(parse(template)).toEqual({
|
||||
type: ASTType.TComponent,
|
||||
name: "MyComponent",
|
||||
dynamicProps: null,
|
||||
props: {},
|
||||
handlers: {},
|
||||
isDynamic: false,
|
||||
@@ -931,6 +952,7 @@ describe("qweb parser", () => {
|
||||
expect(parse(`<t t-component="myComponent" />`)).toEqual({
|
||||
type: ASTType.TComponent,
|
||||
name: "myComponent",
|
||||
dynamicProps: null,
|
||||
props: {},
|
||||
handlers: {},
|
||||
isDynamic: true,
|
||||
@@ -942,6 +964,7 @@ describe("qweb parser", () => {
|
||||
expect(parse(`<t t-component="mycomponent" a="1" b="'b'"/>`)).toEqual({
|
||||
type: ASTType.TComponent,
|
||||
name: "mycomponent",
|
||||
dynamicProps: null,
|
||||
props: { a: "1", b: "'b'" },
|
||||
handlers: {},
|
||||
isDynamic: true,
|
||||
@@ -949,10 +972,23 @@ describe("qweb parser", () => {
|
||||
});
|
||||
});
|
||||
|
||||
test("dynamic component with t-props", async () => {
|
||||
expect(parse(`<t t-component="mycomponent" t-props="state" a="1"/>`)).toEqual({
|
||||
type: ASTType.TComponent,
|
||||
name: "mycomponent",
|
||||
dynamicProps: "state",
|
||||
props: { a: "1" },
|
||||
handlers: {},
|
||||
isDynamic: true,
|
||||
slots: {},
|
||||
});
|
||||
});
|
||||
|
||||
test("component with t-esc", async () => {
|
||||
expect(parse(`<MyComponent t-esc="someValue"/>`)).toEqual({
|
||||
type: ASTType.TComponent,
|
||||
name: "MyComponent",
|
||||
dynamicProps: null,
|
||||
props: {},
|
||||
handlers: {},
|
||||
isDynamic: false,
|
||||
@@ -964,6 +1000,7 @@ describe("qweb parser", () => {
|
||||
expect(parse(`<MyComponent t-call="subTemplate"/>`)).toEqual({
|
||||
type: ASTType.TComponent,
|
||||
name: "MyComponent",
|
||||
dynamicProps: null,
|
||||
props: {},
|
||||
handlers: {},
|
||||
isDynamic: false,
|
||||
@@ -982,6 +1019,7 @@ describe("qweb parser", () => {
|
||||
expect(parse(template)).toEqual({
|
||||
type: ASTType.TComponent,
|
||||
name: "MyComponent",
|
||||
dynamicProps: null,
|
||||
props: {},
|
||||
handlers: {},
|
||||
isDynamic: false,
|
||||
@@ -991,6 +1029,7 @@ describe("qweb parser", () => {
|
||||
isDynamic: false,
|
||||
handlers: {},
|
||||
name: "Child",
|
||||
dynamicProps: null,
|
||||
props: {},
|
||||
slots: { brol: { type: ASTType.Text, value: "coucou" } },
|
||||
},
|
||||
@@ -1009,6 +1048,7 @@ describe("qweb parser", () => {
|
||||
expect(parse(template)).toEqual({
|
||||
type: ASTType.TComponent,
|
||||
name: "MyComponent",
|
||||
dynamicProps: null,
|
||||
props: {},
|
||||
handlers: {},
|
||||
isDynamic: false,
|
||||
@@ -1018,6 +1058,7 @@ describe("qweb parser", () => {
|
||||
isDynamic: false,
|
||||
handlers: {},
|
||||
name: "Child",
|
||||
dynamicProps: null,
|
||||
props: {},
|
||||
slots: { brol: { type: ASTType.Text, value: "coucou" } },
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user