У меня есть код jQuery, который при нажатии на ссылку сначала скрывает, а затем удаляет некоторый HTML, например, так:
$(this).parent().parent().hide('slow', function () {
$(this).remove();
});
Я хочу сделать тест QUnit, который удостоверится, что рассматриваемый HTML-кодбыл удален:
$(thelink).click();
// Check that it is gone, by finding the first item in the list
entity = input.form.find('.recurrenceinput_occurrences .occurrence span.action a')[0];
// And make sure it's NOT the deleted one:
ok(entity.attributes.date.value !== "20110413T000000");
Проблема, конечно, в том, что тест ok () выполняется до того, как анимация скрытия завершилась, поэтому исходный HTML-код еще не удален, и тест завершается неудачно..
Я пробовал разные способы отложить / остановить тест на секунду или около того, но, похоже, ничего не работает.Наиболее очевидным является использование asynTest и выполнение
stop();
setTimeout(start, 2000);
Но это на самом деле не останавливает тест.Кажется, это останавливает что-то на две секунды, но я не уверен, что.: -)
Есть идеи?