Salut: J'ai été bloqué sur ce test en utilisant Capybara depuis quelques jours maintenant et je ne peux pas trouver une solution. Avoir une modification DOM à effectuer en utilisant AJAX, longue histoire courte:Capybara ne rend pas .js.erb
1) Mon événement ajax déclenche la demande avec succès:
$.ajax({ url: 'nice_url', data: data, complete: function() {debugger}
});
2) Le contrôleur reçoit la demande très bien:
def update_dom
<other stuff>
respond_to do |format|
format.js
end
end
3) IMPORTANT: le fichier update_dom.js.erb est correctement rendu dans l'environnement DEV mais PAS dans le test utilisant Capybara + RSpec.
update_dom.js.erb:
debugger; //first line, breakopint no stopp in Test
<% unless %W(boolean datetime).include?(@operators[:type])%>
$.each($('.values'), function(i, valueField){
<other stuff, etc...>
Ceci est en fait toute la question et se rendra compte des réflexions sur ce
Utilisez-vous actuellement le pilote javascript pour exécuter ce test Capybara particulier? Sans cela, aucun javascript ne sera déclenché. Basique, mais juste pour être sûr! – TomD
Bonjour, @TomD: merci pour votre commentaire. Je suppose que vous faites référence à l'option 'js: true', qui est là dans mon test, oui. – LegaTux
pouvez-vous modifier votre message pour inclure votre rails_helper.rb et votre code de spécification? De plus, juste en y pensant, la déclaration du débogueur js arrête js avec les outils de débogage activés, pas tout à fait sûr que ceux-ci soient là dans les tests automatisés. Pourriez-vous essayer et dans js.erb changer le débogueur à quelque chose comme <% raise "Error"%> et voir si il commet des erreurs dans le test AND? – TomD