summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/test_utils
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2017-11-05 19:55:35 +0900
committerShinya Maeda <shinya@gitlab.com>2017-11-05 19:55:35 +0900
commit6c712667abdc3a5a51dc0ac15a7cbe56b603badb (patch)
tree1f3d14e5e336d7e5d0edac3db5c881c8fd3a1c22 /app/assets/javascripts/test_utils
parenta0f7819ff5d6164a13dcad1e0ceab3567354592b (diff)
parenteba27fe022562e6e5cdae81a08addff6ec152826 (diff)
downloadgitlab-ce-6c712667abdc3a5a51dc0ac15a7cbe56b603badb.tar.gz
Merge branch 'refactor-clusters' into move-kubernetes-from-service-to-clusters-page-10-2-ver
Diffstat (limited to 'app/assets/javascripts/test_utils')
-rw-r--r--app/assets/javascripts/test_utils/index.js2
-rw-r--r--app/assets/javascripts/test_utils/simulate_input.js23
2 files changed, 25 insertions, 0 deletions
diff --git a/app/assets/javascripts/test_utils/index.js b/app/assets/javascripts/test_utils/index.js
index 8875590f0f2..a55a338eea8 100644
--- a/app/assets/javascripts/test_utils/index.js
+++ b/app/assets/javascripts/test_utils/index.js
@@ -1,6 +1,8 @@
import 'core-js/es6/map';
import 'core-js/es6/set';
import simulateDrag from './simulate_drag';
+import simulateInput from './simulate_input';
// Export to global space for rspec to use
window.simulateDrag = simulateDrag;
+window.simulateInput = simulateInput;
diff --git a/app/assets/javascripts/test_utils/simulate_input.js b/app/assets/javascripts/test_utils/simulate_input.js
new file mode 100644
index 00000000000..90c1b7cb57e
--- /dev/null
+++ b/app/assets/javascripts/test_utils/simulate_input.js
@@ -0,0 +1,23 @@
+function triggerEvents(input) {
+ input.dispatchEvent(new Event('keydown'));
+ input.dispatchEvent(new Event('keypress'));
+ input.dispatchEvent(new Event('input'));
+ input.dispatchEvent(new Event('keyup'));
+}
+
+export default function simulateInput(target, text) {
+ const input = document.querySelector(target);
+ if (!input || !input.matches('textarea, input')) {
+ return false;
+ }
+
+ if (text.length > 0) {
+ Array.prototype.forEach.call(text, (char) => {
+ input.value += char;
+ triggerEvents(input);
+ });
+ } else {
+ triggerEvents(input);
+ }
+ return true;
+}