[IMP] owl: add a new mount method

This commit is contained in:
Géry Debongnie
2020-10-27 14:41:09 +01:00
committed by aab-odoo
parent d615ffd81b
commit cb07c99d40
17 changed files with 191 additions and 126 deletions
+1 -2
View File
@@ -85,8 +85,7 @@ afterEach(() => {
describe("SomeComponent", () => {
test("component behaves as expected", async () => {
const props = {...}; // depends on the component
const comp = new SomeComponent(null, props);
await comp.mount(fixture);
const comp = await mount(SomeComponent, { target: fixture, props });
// do some assertions
expect(...).toBe(...);
+8 -11
View File
@@ -54,7 +54,7 @@ Now, `index.html` should contain the following:
And `app.js` should look like this:
```js
const { Component } = owl;
const { Component, mount } = owl;
const { xml } = owl.tags;
const { whenReady } = owl.utils;
@@ -65,8 +65,7 @@ class App extends Component {
// Setup code
function setup() {
const app = new App();
app.mount(document.body);
mount(App, target: { document.body })
}
whenReady(setup);
@@ -124,7 +123,7 @@ Here is the content of `app.js` and `main.js`:
```js
// app.js ----------------------------------------------------------------------
const { Component } = owl;
const { Component, mount } = owl;
const { xml } = owl.tags;
export class App extends Component {
@@ -135,8 +134,7 @@ export class App extends Component {
import { App } from "./app.js";
function setup() {
const app = new App();
app.mount(document.body);
mount(App, { target: document.body });
}
owl.utils.whenReady(setup);
@@ -240,12 +238,11 @@ export class App extends Component {
}
// src/main.js -----------------------------------------------------------------
import { utils } from "@odoo/owl";
import { utils, mount } from "@odoo/owl";
import { App } from "./components/App";
function setup() {
const app = new App();
app.mount(document.body);
mount(App, { target: document.body });
}
utils.whenReady(setup);
@@ -253,6 +250,7 @@ utils.whenReady(setup);
// tests/components/App.test.js ------------------------------------------------
import { App } from "../../src/components/App";
import { makeTestFixture, nextTick, click } from "../helpers";
import { mount } from "@odoo/owl";
let fixture;
@@ -266,8 +264,7 @@ afterEach(() => {
describe("App", () => {
test("Works as expected...", async () => {
const app = new App();
await app.mount(fixture);
await mount(App, { target: fixture });
expect(fixture.innerHTML).toBe("<div>Hello Owl</div>");
click(fixture, "div");
+8 -13
View File
@@ -83,7 +83,7 @@ a single root component. Let us start by defining an `App` component. Replace th
content of the function in `app.js` by the following code:
```js
const { Component } = owl;
const { Component, mount } = owl;
const { xml } = owl.tags;
const { whenReady } = owl.utils;
@@ -94,8 +94,7 @@ class App extends Component {
// Setup code
function setup() {
const app = new App();
app.mount(document.body);
mount(App, { target: document.body });
}
whenReady(setup);
@@ -279,8 +278,7 @@ class App extends Component {
// -------------------------------------------------------------------------
function setup() {
owl.config.mode = "dev";
const app = new App();
app.mount(document.body);
mount(App, { target: document.body });
}
whenReady(setup);
@@ -639,8 +637,7 @@ function setup() {
owl.config.mode = "dev";
const store = new Store({ actions, state: initialState });
App.env.store = store;
const app = new App();
app.mount(document.body);
mount(App, { target: document.body });
}
whenReady(setup);
@@ -666,9 +663,8 @@ function makeStore() {
function setup() {
owl.config.mode = "dev";
App.env.store = makeStore();
const app = new App();
app.mount(document.body);
const env = {store = makeStore()};
mount(App, { target: document.body, env });
}
```
@@ -943,9 +939,8 @@ For reference, here is the final code:
function setup() {
owl.config.mode = "dev";
App.env.store = makeStore();
const app = new App();
app.mount(document.body);
const env = {store = makeStore()};
mount(App, { target: document.body, env });
}
whenReady(setup);