Случаи проверки кармы: фокусное событие

Я тестирую фокусное событие в angularjs, используя тесты кармы. Но элемент не фокусируется. Сразу после выполнения element.focus() и проверьте, является ли элемент сфокусирован, я становлюсь ложным. И document.activeElement в этом месте - это все тело.

Пожалуйста, предложите решение. Благодаря

Ответы

Ответ 1

(Этот ответ вдохновлен Тестирование фокуса директивы AngularJS)

Вам нужно добавить свой элемент в тело документа, чтобы document.activeElement играл с ним.

Перед вызовом element.focus() сделайте следующее:

element.appendTo(document.body);

Кроме того, если вы делаете это в модульных тестах, я бы рекомендовал удалить этот элемент после теста, иначе каждый тест добавит еще один элемент в тело (и это может повлиять на результаты других тестов).

afterEach(function () {
    element.remove();
}