summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/helpers/test_utils_fields.js
diff options
context:
space:
mode:
authorVincent Schippefilt <vsc@odoo.com>2019-12-04 10:44:32 +0000
committerVincent Schippefilt <vsc@odoo.com>2019-12-09 11:09:10 +0000
commitb0941d19a07b08fabc64a284b58e57edc46203dd (patch)
treea6b25026177d26a64c6c7f6005e27c41fca5c1b6 /addons/web/static/tests/helpers/test_utils_fields.js
parent29726e8fd000cb09075f9b6b2a6a8d2ddaf4ef58 (diff)
[FIX] web,*: fix all tests and test utils to use native events
In this commit: - transformed test_utils helpers to always trigger native events - introduced new test_utils_create helper: prepareTarget - updated qunit asserts to support Owl Components - updated all misused helpers that would crash with the updated test_utils Co-authored-by: Julien Mougenot <jum@odoo.com> Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com> Co-authored-by: Pierre Rousseau <pro@odoo.com>
Diffstat (limited to 'addons/web/static/tests/helpers/test_utils_fields.js')
-rw-r--r--addons/web/static/tests/helpers/test_utils_fields.js35
1 files changed, 19 insertions, 16 deletions
diff --git a/addons/web/static/tests/helpers/test_utils_fields.js b/addons/web/static/tests/helpers/test_utils_fields.js
index dcc9329bcbe..6532aa7033c 100644
--- a/addons/web/static/tests/helpers/test_utils_fields.js
+++ b/addons/web/static/tests/helpers/test_utils_fields.js
@@ -24,17 +24,21 @@ var domUtils = require('web.test_utils_dom');
* Example:
* testUtils.fields.editAndTrigger($('selector'), 'test', ['input', 'change']);
*
- * @param {jQuery} $el should target an input, textarea or select
+ * @param {jQuery|EventTarget} el should target an input, textarea or select
* @param {string|number} value
* @param {string[]} events
* @returns {Promise}
*/
-function editAndTrigger($el, value, events) {
- if ($el.length !== 1) {
- throw new Error(`target ${$el.selector} has length ${$el.length} instead of 1`);
+function editAndTrigger(el, value, events) {
+ if (el instanceof jQuery) {
+ if (el.length !== 1) {
+ throw new Error(`target ${el.selector} has length ${el.length} instead of 1`);
+ }
+ el.val(value);
+ } else {
+ el.value = value;
}
- $el.val(value);
- return domUtils.triggerEvents($el, events);
+ return domUtils.triggerEvents(el, events);
}
/**
@@ -45,12 +49,12 @@ function editAndTrigger($el, value, events) {
* Example:
* testUtils.fields.editInput($('selector'), 'somevalue');
*
- * @param {jQuery} $el
+ * @param {jQuery|EventTarget} el should target an input, textarea or select
* @param {string|number} value
* @returns {Promise}
*/
-function editInput($el, value) {
- return editAndTrigger($el, value, ['input']);
+function editInput(el, value) {
+ return editAndTrigger(el, value, ['input']);
}
/**
@@ -61,12 +65,12 @@ function editInput($el, value) {
* Example:
* testUtils.fields.editSelect($('selector'), 'somevalue');
*
- * @param {jQuery} $el
+ * @param {jQuery|EventTarget} el should target an input, textarea or select
* @param {string|number} value
* @returns {Promise}
*/
-function editSelect($el, value) {
- return editAndTrigger($el, value, ['change']);
+function editSelect(el, value) {
+ return editAndTrigger(el, value, ['change']);
}
/**
@@ -83,10 +87,9 @@ async function clickOpenM2ODropdown(fieldName, selector) {
if (matches.length !== 1) {
throw new Error(`cannot open m2o: selector ${selector} has been found ${matches.length} instead of 1`);
}
- matches[0].click();
- return await concurrency.delay(0).then(function () {
- return matches[0];
- });
+
+ await domUtils.click(matches[0]);
+ return matches[0];
}
/**