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. Los campos obligatorios están marcados con *

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