diff options
| author | Nicolas Lempereur <nle@odoo.com> | 2020-11-04 16:48:35 +0000 |
|---|---|---|
| committer | Nicolas Lempereur <nle@odoo.com> | 2020-11-05 15:42:28 +0000 |
| commit | 74ea66a107cfc98cce8e52903ec21e3d752fb4fb (patch) | |
| tree | 3677ae8d4bae353536f4c73ebe14e0f1a67b2c7c /addons/web/static/tests/control_panel/search_utils_tests.js | |
| parent | 5b022f433a44e627541d30ae21d7a867f4a3a6ff (diff) | |
[FIX] web: use latin number date domain in comparison menu
When using eg. arabic locale, the figures inside dates were replaced by
arabic figures which are not supported server side (they are almost
always sent in latin figures).
With this changeset, the we are using english locale to get date in
domains.
Without the change, added test fails with:
Numbers in domain should not use addoneForTest locale
Expected:...[date_field, >=, 2020-06-01], [date_field, <=, 2020-06-30]
Result:...[date_field, >=, 3131-17-12], [date_field, <=, 3131-17-41]
opw-2370392
closes #61354
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Diffstat (limited to 'addons/web/static/tests/control_panel/search_utils_tests.js')
| -rw-r--r-- | addons/web/static/tests/control_panel/search_utils_tests.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/addons/web/static/tests/control_panel/search_utils_tests.js b/addons/web/static/tests/control_panel/search_utils_tests.js index 60a7ae5089d..ab7ef429ca9 100644 --- a/addons/web/static/tests/control_panel/search_utils_tests.js +++ b/addons/web/static/tests/control_panel/search_utils_tests.js @@ -332,5 +332,31 @@ odoo.define('web.search_utils_tests', function (require) { testUtils.mock.unpatch(_t.database.db); testUtils.mock.unpatch(_t.database.parameters); }); + + QUnit.test("Moment.js localization does not affect formatted domain dates", async function (assert) { + assert.expect(1); + + const unpatchDate = patchDate(2020, 5, 1, 13, 0, 0); + const initialLocale = moment.locale(); + moment.defineLocale('addoneForTest', { + postformat: function (string) { + return string.replace(/\d/g, match => (1 + parseInt(match)) % 10); + } + }); + const referenceMoment = moment().locale('addoneForTest'); + + assert.deepEqual( + constructDateDomain(referenceMoment, 'date_field', 'date', ['this_month', 'this_year']), + { + domain: `["&", ["date_field", ">=", "2020-06-01"], ["date_field", "<=", "2020-06-30"]]`, + description: "June 3131", + }, + "Numbers in domain should not use addoneForTest locale" + ); + + moment.locale(initialLocale); + moment.updateLocale("addoneForTest", null); + unpatchDate(); + }); }); }); |
