query.matches // => true or false Detecting when the query result changes The #matches() method tests the current screen width. To be notified when the width changes, you need additional scripting...
...Model Serializer (AMS) to serializer our Active Record models to JSON. JSON Schema to test the responses of our server. SwaggerUI to document the API. It worked The concept worked...
...Rails application, that has no UI components (only the documentation) and therefore no integration tests, the tests are really fast. With ~25 endpoints the tests are finished within 22 seconds...
...inside dependencies sassLoaderConfig.use[sassLoaderIndex].options.sassOptions.quietDeps = true sassLoaderConfig.use[sassLoaderIndex].options.sassOptions.silenceDeprecations = ['import'] Webpack module.exports = { module: { rules: [ { test: /\.s[ac]ss$/i, use: [ "style-loader", "css-loader", { loader: "sass-loader", options: { sassOptions: { quietDeps...
...Note that this only works for single-line texts. If you want to truncate tests across multiple lines, use a JavaScript solution like Superclamp. There is also -webkit-line-clamp...
...as frozen. Rspec mocks (e.g. using partial doubles with receive(partial_double).to ...) in tests would raise the following error (just imagine how hard debugging can be): ArgumentError: Cannot proxy...
Sometimes you just want to have a small web server that serves files to test something. Serve the current directory On Ruby 1.9.2+ you can do the following ("." for current...
...kinds of work is done in those cronjobs. Can you find the code? The tests? What happens when an error occurs? How do we get notified? Understand that each call...
...of the release year is a good candidate. Make sure your code is (still) tested. Read the Sidekiq testing guide for some pointers. Sidekiq comes with a Web UI. Mount...
@writer.puts "Started: #{i}" sleep 0.01 @writer.puts "Finished: #{i}" end @writer.close end end @writer.close # test whether we always get alternating "Started" / "Finished" lines lines = [] @reader.each_line { |line| lines << line } lines.should...
...environment configuration. This is useful for keeping log files manageable, especially in development and test environments. # config/environments/development.rb Rails.application.configure do config.log_file_size = 10.megabytes end When this value is set, Rails...
...do not have to call force_extension(...) in your version block. If you have tests for file processors (e.g. for ClamAV virus scans via process: :virus_scan) and you have...
...start playing video or audio. E.g. if you attempt to call video.play() in a test, the call will reject with a message like this: NotAllowedError: play() failed because the user...
...with the document first. https://goo.gl/xX8pDD Workaround To pretend document interaction in a test you can create an element, click on it, and remove the element again. This unblocks...
See the Spreewald README for more cool features. You can use it to test links that were opened with a link_to(..., :target => '_blank') link or other ways that...
...create new tabs or windows. Important This only works with Selenium enabled tests...
# Usage: linearcommits FOO-123456 # Alternative usage: linearcommits https://linear.app/some-workspace/issue/FOO-123456 function linearcommits { if test "$1" then local LINEAR_ID=$(echo "$1" | grep "[^/]*$" -o) # Extract linear ID from URLs
Then I should see a table with exactly the following rows: ... Testing tables with colspan or rowspan Cucumber tables are required to have the same number of...
...cells in every row. This is unfortunate when testing a table that uses colspan or rowspan attributes. The attached step definition offers a workaround for this: Wrap the entire table...
...out, e.g. when hunting down a bug or embedding a Rails app into the tests of a gem. What you do is basically: Put everything (gems, application config, database migrations...
...your own risk. If you plan to use it in production, please add some tests - the code above was written as part of hackathon. The tts-1-hd model used...
...should just set verify_ssl: false or similar. This is only okay-ish for testing something in development. Note that there are services like badssl.com to test against weird SSL...
...case, too. Still, a certificate store is clearer and more versatile. Protip: You can test certificate chains with services like whatsmychaincert.com. Bonus info: when using curl on the command line...
...a habit of using this regularly, as it has high potential to make your tests hard to read and understand. You're often better of by using factories, generally different...
...implementation patterns, or just duplicating some of your tests' code. In some situations this has benefits, like making complex setups simpler if you want to modify only one aspect.
Add the following to ~/.config/mimeapps.list: x-scheme-handler/rubymine=rubymine.desktop Step 3: Test your desktop entry Does gio mime x-scheme-handler/rubymine suggest Registered applications: rubymine.desktop?
...Save it to a file, make sure you have Ruby 2.2 and run it. test_symbol = '__test' # The bug only occurs when a symbol used in a keyword argument is...
...symbols table *before* Ruby first sees the keyword argument. existing = Symbol.all_symbols.map(&:to_s).grep('__test') raise "Symbol #{test_symbol} already exists in symbol table!" if existing.any? '__test'.to_sym # breaks...
...opt-out of Capybara's retry mechanism you need to retry yourself or your test will be flaky. Note the wait: 0 argument. Actually there is a host of options...
...Let's say for example, you maintain a gem and want to run automated tests against multiple rails versions. When you need to bundle one of your secondary Gemfiles, the...
...only fail if no stories could be found at all. Breaking changes Removed VNC test browser support for integration tests – Headless Chrome has matured and is almost a drop-in...
...by checking the $LD_PRELOAD environment variable: echo $LD_PRELOAD LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 To test if Jemalloc is the reason, unset the Environment Variable and run the command again: