Up to now, scripts were loaded prior to the stylesheet in <head>. When
scripts are loaded before stylesheets, it is possible that scripts
execute on the DOM elements before styles are fully loaded. This can
yield unexpected results.
In the case of the features/desktop/signs_up.feature tests, it would
happen every so often that the scripts ran before styles were loaded.
For example, the app.views.Publisher class (responsible for actions
related to creating a new post) relies on the poll element being either
hidden (or poll options being defined). As per stylesheet, the poll is
hidden by default. But when the scripts run before the stylesheet has
loaded, the poll appears visible to the script and post submission is
disabled.
This is fixed by loading stylesheets prior to scripts. See SO for more
info: https://stackoverflow.com/a/1324720/6451879
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.
When `public/assets/` is a symlink, running `find public/assets ...`
does not return the correct result. By using `public/assets/`, find is
able to return the correct result regardless of whether the folder is an
actual folder or a symlink.
[ci skip]