From 3772c943011e976d9e134ab50dec86239093c1cb Mon Sep 17 00:00:00 2001 From: Thijs Louisse Date: Tue, 15 Mar 2022 19:06:13 +0100 Subject: [PATCH] patch(form-core): expose mimicUserInput test-helper --- .changeset/green-ads-fold.md | 5 +++++ packages/form-core/test-helpers/index.js | 1 + .../form-core/test-helpers/mimicUserInput.js | 16 ++++++++++++++++ 3 files changed, 22 insertions(+) create mode 100644 .changeset/green-ads-fold.md create mode 100644 packages/form-core/test-helpers/mimicUserInput.js diff --git a/.changeset/green-ads-fold.md b/.changeset/green-ads-fold.md new file mode 100644 index 000000000..5437bd4c2 --- /dev/null +++ b/.changeset/green-ads-fold.md @@ -0,0 +1,5 @@ +--- +'@lion/form-core': patch +--- + +form-core: expose 'mimicUserInput' test-helper diff --git a/packages/form-core/test-helpers/index.js b/packages/form-core/test-helpers/index.js index fcc2d3d72..3b21d5670 100644 --- a/packages/form-core/test-helpers/index.js +++ b/packages/form-core/test-helpers/index.js @@ -1,2 +1,3 @@ export * from './ExampleValidators.js'; export * from './getFormControlMembers.js'; +export * from './mimicUserInput.js'; diff --git a/packages/form-core/test-helpers/mimicUserInput.js b/packages/form-core/test-helpers/mimicUserInput.js new file mode 100644 index 000000000..b11e532e3 --- /dev/null +++ b/packages/form-core/test-helpers/mimicUserInput.js @@ -0,0 +1,16 @@ +// @ts-nocheck +/** + * @param {HTMLElement} formControl + * @param {?} newViewValue + * @param {{caretIndex?:number}} config + */ +export function mimicUserInput(formControl, newViewValue, { caretIndex } = {}) { + formControl.value = newViewValue; // eslint-disable-line no-param-reassign + if (caretIndex) { + // eslint-disable-next-line no-param-reassign + formControl._inputNode.selectionStart = caretIndex; + // eslint-disable-next-line no-param-reassign + formControl._inputNode.selectionEnd = caretIndex; + } + formControl._inputNode.dispatchEvent(new Event('input', { bubbles: true })); +}