testing - serp - test seo tags
Prueba e2e de escenarios angulares: espera a que finalicen los eventos clave antes de continuar (1)
¿Cómo está la gente escribiendo pruebas angulares de e2e que implican desencadenar una secuencia de eventos de IU? La naturaleza asincrónica del escenario parece dificultarlo.
Detalles: Estoy escribiendo pruebas para una aplicación que tiene mucho manejo de claves para ayudar a acelerar la edición de una forma especializada. He reunido una extensión de teclado para el escenario dsl (ver abajo) pero solo el primer evento clave de una prueba tiene algún efecto. es decir
keyboard().keydown(null, ''keydown'', 40, false, true); // ctrl-down
expect(element(''*:focus'').text()).toEqual(''00:04'');
keyboard().keydown(null, ''keydown'', 40, false, true); // ctrl-down
expect(element(''*:focus'').text()).toEqual(''''); // but equals 00:04
La segunda clave no hace nada, porque no encuentra un *: foco para enrutar la clave (aunque hay uno en la pantalla). Confuso.
angular.scenario.dsl(''keyboard'', function() {
var chain = {};
chain.keydown = function(selector, keyEvent, keyCode, shift, ctrl) {
return this.addFutureAction("keyEvent", function($window, $document, done) {
var jQuery = $window.$;
var e = jQuery.Event(keyEvent);
e.keyCode = keyCode; // # Some key code value
e.altKey = false;
e.ctrlKey = ctrl;
e.shiftKey = shift;
if (selector == null) selector = ''*:focus'';
var j = jQuery(selector);
if (j == null) j = jQuery(''body'');
j.trigger(e);
done();
});
};
return function() {
return chain;
};
});