2013-08-11 13 views
8

Wenn ich auf "Anmelden" in der Navigationsleiste klicke, erscheint ein modales Dialogfeld, in dem die Anmeldung teilweise erfolgt.Testen eines modalen Dialogs mit RSpec und Capybara

Wie würde ich testen mit RSpec und Capybara?

<!--....--> 
<li><%= link_to "Log in", '#', data: {:'reveal-id' => 'loginModal'} %></li> 
<!--....--> 

<div id="loginModal" class="reveal-modal"> 
    <%= render 'devise/sessions/new' %> 
    <a class="close-reveal-modal">&#215;</a> 
</div> 
+0

Althaf - können Sie bestätigen, ob die folgende Lösung für Sie funktioniert hat? – Joe

+1

Ja, es hat wie erwartet funktioniert –

Antwort

13

Versuchen:

visit your_page_path 
click_link "Log in" 
page.should have_content('a_modal_content_here') # async 

Bitte beachten Sie die folgende Verwendung

within('#loginModal') do 
    page.should have_content('a_modal_content_here') # async 
end 

nur für Ihre Inhalte in den Modal zu suchen.

+0

Ich dachte, dies könnte der Weg sein, aber ich müsste sicherstellen, dass der 'a_modal_content_here' etwas ist, das für das modale Recht einzigartig ist? –

+0

Nun nicht notwendig, Sie können 'innerhalb ('# loginModal') {...}' verwenden, um nur in Ihrem modalen HTML zu suchen. –

+0

Großartig, das ist genau das, was ich wollte. Vielen Dank! –

Verwandte Themen