summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/helpers/test_utils_fields.js
diff options
context:
space:
mode:
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];
}
/**