Skip to content
Extraits de code Groupes Projets
  • Finn Woelm's avatar
    14b7c105
    Fix: Use Capybara#fill_in for appending to publisher · 14b7c105
    Finn Woelm a rédigé
    Capybara's native#send_key function is slow when it is passed a string
    longer than just a few characters. This often results in timeout issues
    and Capybara (falsely) reporting feature as failing.
    
    To fix this, we use the faster function #fill_in. This does not trigger
    JavaScript events on the input, so we manually trigger them after
    fill_in by just sending a single key. This can be any key but since we
    do not want to modify the text in the input, non-text keys should be
    used. For a list of non-text keys, see
    http://www.rubydoc.info/github/jnicklas/capybara/Capybara%2FNode%2FElement%3Asend_keys
    
    There is an alternative to the above:
    1) Use #fill_in to enter all text except for the last character:
        fill_in ..., with: "#{status_message_text} #{txt[0..-2]}"
    2) And then use #send_key to send that last character:
        find("#status_message_text").native.send_key(txt.last)
    
    At the moment, both approaches work equally well but the second approach
    is documented here just in case it becomes relevant in the future.
    14b7c105
    Historique
    Fix: Use Capybara#fill_in for appending to publisher
    Finn Woelm a rédigé
    Capybara's native#send_key function is slow when it is passed a string
    longer than just a few characters. This often results in timeout issues
    and Capybara (falsely) reporting feature as failing.
    
    To fix this, we use the faster function #fill_in. This does not trigger
    JavaScript events on the input, so we manually trigger them after
    fill_in by just sending a single key. This can be any key but since we
    do not want to modify the text in the input, non-text keys should be
    used. For a list of non-text keys, see
    http://www.rubydoc.info/github/jnicklas/capybara/Capybara%2FNode%2FElement%3Asend_keys
    
    There is an alternative to the above:
    1) Use #fill_in to enter all text except for the last character:
        fill_in ..., with: "#{status_message_text} #{txt[0..-2]}"
    2) And then use #send_key to send that last character:
        find("#status_message_text").native.send_key(txt.last)
    
    At the moment, both approaches work equally well but the second approach
    is documented here just in case it becomes relevant in the future.
publishing_cuke_helpers.rb 3,34 Kio