From 46afd5dd1b51f6ecbebfd9e19390c196603da8a3 Mon Sep 17 00:00:00 2001 From: "Francois (fge)" Date: Thu, 20 May 2021 16:53:46 +0200 Subject: [PATCH] [IMP] web: fields/fields => fields/format.js + test --- addons/web/__manifest__.py | 1 + .../src/fields/{fields.js => format.js} | 6 ++-- addons/web/static/src/legacy/debug_manager.js | 2 +- .../web/static/tests/fields/format_tests.js | 30 +++++++++++++++++++ 4 files changed, 34 insertions(+), 5 deletions(-) rename addons/web/static/src/fields/{fields.js => format.js} (81%) create mode 100644 addons/web/static/tests/fields/format_tests.js diff --git a/addons/web/__manifest__.py b/addons/web/__manifest__.py index 5559c024f6071..d8a22f916e78d 100644 --- a/addons/web/__manifest__.py +++ b/addons/web/__manifest__.py @@ -472,6 +472,7 @@ 'web.qunit_suite_tests': [ 'base/static/tests/base_settings_tests.js', 'web/static/tests/core/**/*.js', + 'web/static/tests/fields/**/*.js', 'web/static/tests/webclient/**/*.js', ('remove', 'web/static/tests/webclient/**/helpers.js'), 'web/static/tests/legacy/**/*.js', diff --git a/addons/web/static/src/fields/fields.js b/addons/web/static/src/fields/format.js similarity index 81% rename from addons/web/static/src/fields/fields.js rename to addons/web/static/src/fields/format.js index b5880d9247b4c..b6ffeb00f8bee 100644 --- a/addons/web/static/src/fields/fields.js +++ b/addons/web/static/src/fields/format.js @@ -2,19 +2,17 @@ /** * Returns a string representing an many2one. If the value is false, then we - * return an empty string. Note that it accepts two types of input parameters: + * return an empty string. Note that it accepts two types of input parameters: * an array, in that case we assume that the many2one value is of the form * [id, nameget], and we return the nameget, or it can be an object, and in that * case, we assume that it is a record datapoint from a BasicModel. * * @param {Array|Object|false} value - * @param {Object} [field] - * a description of the field (note: this parameter is ignored) * @param {{escape?: boolean}} [options] additional options * @param {boolean} [options.escape=false] if true, escapes the formatted value * @returns {string} */ -export function formatMany2one(value, field, options) { +export function formatMany2one(value, options) { if (!value) { value = ""; } else if (Array.isArray(value)) { diff --git a/addons/web/static/src/legacy/debug_manager.js b/addons/web/static/src/legacy/debug_manager.js index aeee9cd0aabe9..f6716a279e3b1 100644 --- a/addons/web/static/src/legacy/debug_manager.js +++ b/addons/web/static/src/legacy/debug_manager.js @@ -2,7 +2,7 @@ import { editModelDebug } from "../core/debug/debug_service"; import { json_node_to_xml } from "../views/view_utils"; -import { formatMany2one } from "../fields/fields"; +import { formatMany2one } from "../fields/format"; import { parseDateTime, formatDateTime } from "../core/l10n/dates"; const { Component, hooks, tags } = owl; diff --git a/addons/web/static/tests/fields/format_tests.js b/addons/web/static/tests/fields/format_tests.js new file mode 100644 index 0000000000000..d36dc43b7f374 --- /dev/null +++ b/addons/web/static/tests/fields/format_tests.js @@ -0,0 +1,30 @@ +/** @odoo-module **/ + +import { formatMany2one } from "@web/fields/format"; + +QUnit.module("Format Fields", {}, () => { + QUnit.test("formatMany2one", function (assert) { + assert.strictEqual(formatMany2one(null), ""); + assert.strictEqual(formatMany2one([1, "A M2O value"]), "A M2O value"); + assert.strictEqual( + formatMany2one({ + data: { display_name: "A M2O value" }, + }), + "A M2O value" + ); + + assert.strictEqual( + formatMany2one([1, "A M2O value"], { escape: true }), + "A%20M2O%20value" + ); + assert.strictEqual( + formatMany2one( + { + data: { display_name: "A M2O value" }, + }, + { escape: true } + ), + "A%20M2O%20value", + ); + }); +});