summaryrefslogtreecommitdiff
path: root/addons/hr/static/tests/standalone_m2o_avatar_employee_tests.js
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/hr/static/tests/standalone_m2o_avatar_employee_tests.js
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/hr/static/tests/standalone_m2o_avatar_employee_tests.js')
-rw-r--r--addons/hr/static/tests/standalone_m2o_avatar_employee_tests.js124
1 files changed, 124 insertions, 0 deletions
diff --git a/addons/hr/static/tests/standalone_m2o_avatar_employee_tests.js b/addons/hr/static/tests/standalone_m2o_avatar_employee_tests.js
new file mode 100644
index 00000000..976cd34d
--- /dev/null
+++ b/addons/hr/static/tests/standalone_m2o_avatar_employee_tests.js
@@ -0,0 +1,124 @@
+odoo.define('hr.StandaloneM2OEmployeeTests', function (require) {
+ "use strict";
+
+ const { xml } = owl.tags;
+
+ const AbstractRendererOwl = require('web.AbstractRendererOwl');
+ const BasicView = require("web.BasicView");
+ const BasicRenderer = require("web.BasicRenderer");
+ const RendererWrapper = require('web.RendererWrapper');
+ const { createView } = require('web.test_utils');
+
+ const StandaloneM2OAvatarEmployee = require('hr.StandaloneM2OAvatarEmployee');
+
+ function getHtmlRenderer(html) {
+ return BasicRenderer.extend({
+ start: function () {
+ this.$el.html(html);
+ return this._super.apply(this, arguments);
+ }
+ });
+ }
+
+ function getOwlView(owlRenderer, viewType) {
+ viewType = viewType || "test";
+ return BasicView.extend({
+ viewType: viewType,
+ config: Object.assign({}, BasicView.prototype.config, {
+ Renderer: owlRenderer,
+ }),
+ getRenderer() {
+ return new RendererWrapper(null, this.config.Renderer, {});
+ }
+ });
+ }
+
+ function getHtmlView(html, viewType) {
+ viewType = viewType || "test";
+ return BasicView.extend({
+ viewType: viewType,
+ config: Object.assign({}, BasicView.prototype.config, {
+ Renderer: getHtmlRenderer(html)
+ })
+ });
+ }
+
+ QUnit.module('hr', {}, function () {
+ QUnit.module('StandaloneM2OEmployeeTests', {
+ beforeEach: function () {
+ this.data = {
+ 'foo': {
+ fields: {
+ employee_id: {string: "Employee", type: 'many2one', relation: 'hr.employee'},
+ },
+ records: [],
+ },
+ 'hr.employee': {
+ fields: {},
+ records: [
+ {id: 10, name: "Mario"},
+ {id: 20, name: "Luigi"},
+ {id: 30, name: "Yoshi"}
+ ],
+ },
+ };
+ },
+ });
+
+ QUnit.test('standalone_m2o_avatar_employee: legacy view', async function (assert) {
+ assert.expect(1);
+
+ const html = "<div class='coucou_test'></div>";
+ const view = await createView({
+ View: getHtmlView(html, "test"),
+ data: this.data,
+ model: "foo",
+ arch: "<test/>"
+ });
+
+ const avatar10 = new StandaloneM2OAvatarEmployee(view, 10);
+ const avatar20 = new StandaloneM2OAvatarEmployee(view, 20);
+ const avatar30 = new StandaloneM2OAvatarEmployee(view, [30, 'Bowser']);
+
+ await avatar10.appendTo(view.el.querySelector('.coucou_test'));
+ await avatar20.appendTo(view.el.querySelector('.coucou_test'));
+ await avatar30.appendTo(view.el.querySelector('.coucou_test'));
+
+ assert.deepEqual(
+ [...view.el.querySelectorAll('.o_field_many2one_avatar span')].map(el => el.innerText),
+ ["Mario", "Luigi", "Bowser"]
+ );
+
+ view.destroy();
+ });
+
+ QUnit.test('standalone_m2o_avatar_employee: Owl view', async function (assert) {
+ assert.expect(1);
+
+ class Renderer extends AbstractRendererOwl { }
+ Renderer.template = xml`<div class='coucou_test'></div>`;
+
+ const view = await createView({
+ View: getOwlView(Renderer, "test"),
+ data: this.data,
+ model: "foo",
+ arch: "<test/>"
+ });
+
+ const avatar10 = new StandaloneM2OAvatarEmployee(view, 10);
+ const avatar20 = new StandaloneM2OAvatarEmployee(view, 20);
+ const avatar30 = new StandaloneM2OAvatarEmployee(view, [30, 'Bowser']);
+
+ await avatar10.appendTo(view.el.querySelector('.coucou_test'));
+ await avatar20.appendTo(view.el.querySelector('.coucou_test'));
+ await avatar30.appendTo(view.el.querySelector('.coucou_test'));
+
+ assert.deepEqual(
+ [...view.el.querySelectorAll('.o_field_many2one_avatar span')].map(el => el.innerText),
+ ["Mario", "Luigi", "Bowser"]
+ );
+
+ view.destroy();
+ });
+ });
+});