{"repo":"palkan/isolator","free":true,"listed":false,"github":"https://github.com/palkan/isolator","clone":"git clone https://github.com/palkan/isolator.git","description":"Detect non-atomic interactions within DB transactions","language":"Ruby","stars":1120,"topics":["activerecord","rails","developer-tools","testing-tools","hacktoberfest"],"license":"MIT","category":"dev-tools","readme_excerpt":"Isolator Detect non-atomic interactions within DB transactions. Examples: Of course, Isolator can detect implicit transactions too. Consider this pretty common bad practice–enqueueing background job from after create callback: Isolator is supposed to be used in tests and on staging. Isolator is built by Evil Martians , an American design and engineering consultancy for developer tools, AI, and cybersecurity startups . Installation Add this line to your application's Gemfile: Usage Isolator is a plug-n-play tool, so, it begins to work right after required. However, there are some potential caveats: 1) Isolator tries to detect the environment automatically and includes only necessary adapters. Thus the order of loading gems matters: make sure that isolator is required in the end (NOTE: in Rails, all adapters loaded after application initialization). 2) Isolator does not distinguish framework-level adapters. For example, :active job spy doesn't take into account which AJ adapter you use; if you are using a safe one (e.g. Que ) just disable the :active job adapter to avoid false negatives. You can do this by adding an initializer: 4) Isolator tries to detect the test environment and slightly change its behavior: first, it respect transactional tests ; secondly, error raising is turned on by default (see below). 5) Experimental multiple databases has been added in v0.7.0. Please, let us know if you encounter any issues. Configuration Isolator relies on [uniform notifier][] to send","default_branch":null,"files":null,"tree":[],"storefront":"/r/palkan","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/palkan/isolator/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}