Удалите персонажа сзади с помощью fireEvent `Backspace`
Я пытаюсь удалить персонажа сзади, используя Backspace
событие, но это не сработало, как ожидалось.
Это не позволит мне удалить персонажа сзади с помощью клавиши `Backspace.
input.focus()
const options = {
key: 'Backspace',
keyCode: 8,
which: 8,
}
fireEvent.keyDown(input, options)
fireEvent.keyUp(input, options)
Воспроизведение: https://codesandbox.io/s/testing-library-delete-1-character-i4y3d?file=/src/input.test.js:507-753
1 ответ
Решение
Я могу решить эту проблему, добавив эту функцию.
function backspace(element) {
let actuallyTyped = element.value;
const backspaceKey = {
key: 'Backspace',
code: 8,
inputType: 'deleteContentBackward',
};
const sharedEventConfig = {
key: backspaceKey.key,
charCode: backspaceKey.code,
keyCode: backspaceKey.code,
which: backspaceKey.code,
modifier: backspaceKey.modifier,
};
const downEvent = fireEvent.keyDown(element, sharedEventConfig);
if (downEvent) {
actuallyTyped = actuallyTyped.slice(0, -1);
fireEvent.input(element, {
target: { value: actuallyTyped },
inputType: backspaceKey.inputType,
bubbles: true,
cancelable: true,
});
}
fireEvent.keyUp(element, sharedEventConfig);
}
А потом вызываю это в моем тестовом задании.
// delete up 5 times
let count = 5;
do {
backspace(input);
} while (count--);