2013-03-11 7 views
5

ho questa prova in un'applicazione Rails, utilizzando Capybara:Newline viene anteposto l'invio di form con Capybara

within "#register" do 
    fill_in "Biography (optionnal)", :with => "Hello world!" 
end 

click_on "Save" 

# Check that form is repopulated with old input 
expect(find_field('user_bio').value).to eq('Hello world!') 

Ecco quello che ottengo dal test:

Failure/Error: expect(find_field('user_bio').value).to eq('Hello world!') 
expected: "Hello world!" 
got: "\nHello world!" 

In nessun momento devo anteporre una nuova riga al campo user_bio manualmente.

Da dove potrebbe venire?

Edit 1: dopo qualche Googling, sembra che ci sia stato un PR su Github per questo, e ha ottenuto fuse. Quindi immagino che non sia un bug di Capybara. Vede https://github.com/jnicklas/capybara/commit/755a724d4b10e6841a0eeb58af43375236b33247

+0

Si prega di aggiungere un caso di riproduzione in modo saremo in grado di riprodurlo. È possibile iniziare da [questo] (https://gist.github.com/jnicklas/5137053) –

+0

Che cosa fa fare clic su Salva? Questo invia il modulo? Fai una richiesta AJAX? –

+1

Sembra che ci sia un altro bug in Capybara: https://github.com/jnicklas/capybara/issues/1068 –

risposta

0

si può fare un prima salvare filtro per chiarire che la nuova linea

nel modello aggiungere

before_save :clear_new_lines 

protected 
def clear_new_lines 
    self.user_bio = user_bio.gsub("\n",'') 
end 
Problemi correlati