Testear vistas con in-place editors de Hobo

Al intentar testear el comportamiento de los editores in-place de Hobo, me he encontrado que las acciones habituales de los tests no funcionaban: page.find(elemento).click y luego fill_in(elemento). Capybara no se estaba enterando de que el DOM había cambiado por una llamada Ajax y que el span original había sido sustituido por un formulario y un input type text :/

La solución: utilizar execute_script

page.execute_script('
  jQuery("elemento").trigger("click"); // Esto simula un clic en el elemento que hace que aparezca el formulario con el input
  jQuery("elemento").val("Contenido txatxi"); // Esto mete el dato en el input
')
page.find('body').click # Esto hace clic fuera del input y dispara la llamada Ajax de Hobo para actualizar el dato

Salud 😉

Acerca de Ibon

Me gusta salir a correr, pasear, andar en bici y patinar :) Si no te saludo es que, o no llevo las gafas puestas o que tengo mal día. Pero no te lo tomes a mal: seguro que mañana estoy de mejor humor ;) Me gusta escuchar algunos podcasts sobre divulgación científica: Coffee Break, CienciaES, y algunos otros que divulgan buen karma. Creo en los principios que fundamentan el Software Libre, y me parece una gran herramienta para conseguir una sociedad mas justa.
Esta entrada fue publicada en Programación y etiquetada , . Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.