Haml HTML generated by Haml 5 HTML generated by Haml 6 %button(up-test) %button(up-test=true) %button(up-test=false) %button(up-test=nil) %button(up-test...
same %button(up-test='false') same %button(up-test='') same Extending the list of attributes considered "boolean" You can add to the list of "boolean attributes", but please do...
...write the password hash to a file: echo firstname.lastname:$2y$05$4JXxd2GM/J2...9c3KJmFS > htpass_test Check, if it is correct: htpasswd -v htpass_test firstname.lastname You probably should not use...
When testing JavaScript functionality in Selenium (E2E), you may need to access a class or function inside of a evaluate_script block in one of your steps. Capybara may only...
...are exporting your definition(s) in Webpacker, these won't be available in your tests (and neither in the dev console). The following principles/concepts also apply to Sprockets.
I recently encountered the error above when I was running selenium tests. Thanks to a post on stackoverflow I found out that clearing all files in tmp/cache in my project...
Sometimes you want to test migrations with production or staging data. Dumping single tables makes sense if a complete dump would be to big. mysqldump -u deploy_user -p application...
To test that an object was constructed by a given constructor function, use jasmine.any(Klass): describe('plus()', function() { it ('returns a number', function() { let result = plus(1, 2) expect(result...
This step will pass if the specified select is sorted. Then /^the "(.*?)" select should be sorted$/ do |label, negate|
...gem you often hook onto events like this: update.before do do_something end For testing such things in your controller you should -- as always -- not trigger something that eventually calls...
Capybara will match elements outside of a page's tag. For example, the step definitions below match nodes in a...
Our collection of the most useful Cucumber steps, Spreewald, now supports exact matching of form fields and lets you use...
Code splitting is a feature of esbuild that can keep huge libraries out of the main bundle. How code splitting...
I am talking about development speed. When your application starts growing and you start adding gems, it starts to take...
The step definition below lets you say: Then I should see a field "Password" But I should not see a...
This is surprisingly difficult when there is a with the same text on the page, but you really want to...
The step definition below allows you to write: Then I should see a link labeled "Foo" But I should not...
Use bundler > 1.15 to fix Gem::LOADED_SPECS_MUTEX (NameError). Given the following project: ruby -v ruby 1.8.7
Great presentation about writing Javascript like you write everything else: Well-structured and tested. JavaScript is no longer a toy language. Many of our applications can’t function without it...
...and love work just as well in JavaScript as they do any other language. Test driven development forces us to write modular, decoupled code...
The step definitions below allow you to write this in both Webrat and Capybara: When I follow "Download as PDF...
capybara-lockstep can help you with flaky end-to-end tests: This Ruby gem synchronizes Capybara commands with client-side JavaScript and AJAX requests. This greatly improves the stability of...
...a full-stack integration test suite, even if that suite has timing issues...
Don't simply test for the presence of the magic Paperclip attribute, it will return a paperclip Attachment object and thus always be true: - if user.photo.present? # always true
Reading user input in console applications is usually done using Kernel#gets. Stubbing that can be a bit hairy.
...seems to forget cookies / sessions when you run it with Selenium check if the test travels in time like here: Given the date is 2017-10-20
Spreewald has steps that let you test that e-mails have been sent, using arbitrary conditions in any combination. The attached file is for legacy purposes only...
Here's a pretty useful steps that hasn't made it into Spreewald yet. It is best used with the...