rails-testinglisted
Install: claude install-skill mickzijdel/rails-toolkit
# Rails Testing Patterns
## 1. Test Helper Setup
Configure the suite once in `test/test_helper.rb`: parallel workers, fixtures, helper modules, and `Current` setup/teardown.
```ruby
# test/test_helper.rb
ENV["RAILS_ENV"] ||= "test"
require_relative "../config/environment"
require "rails/test_help"
require "webmock/minitest"
require "vcr"
require "mocha/minitest"
require "turbo/broadcastable/test_helper"
WebMock.allow_net_connect!
module ActiveSupport
class TestCase
parallelize workers: :number_of_processors, work_stealing: ENV["WORK_STEALING"] != "false"
fixtures :all
include ActiveJob::TestHelper
include ActionTextTestHelper, CachingTestHelper, SessionTestHelper
include Turbo::Broadcastable::TestHelper
setup do
Current.account = accounts("37s")
end
teardown do
Current.clear_all # prevent Current leaking between tests
end
end
end
```
---
## 2. Fixture Patterns with Deterministic UUIDs
Apps with UUID primary keys need deterministic fixture IDs for cross-references. Use `ActiveRecord::FixtureSet.identify` with `:uuid`, and reference other fixtures with the `_uuid` suffix.
```yaml
# test/fixtures/accounts.yml
37s:
id: <%= ActiveRecord::FixtureSet.identify("37s", :uuid) %>
name: 37signals
external_account_id: <%= ActiveRecord::FixtureSet.identify("37signals") %>
# test/fixtures/users.yml
david:
id: <%= ActiveRecord::FixtureSet.identify("david", :uuid) %>
name: David
identity: david # non-UUID F