RSpec nie widzi zapisanych rekordów w testach

Mój spec_helper wygląda następująco:

ENV['RAILS_ENV'] = 'test'

require File.expand_path('../../config/environment', __FILE__)
require 'rspec/rails'
require 'capybara/poltergeist'
require 'shoulda-matchers'
require 'database_cleaner'
require 'factory_girl_rails'

Capybara.javascript_driver = :poltergeist

RSpec.configure do |config|
  config.mock_with :rspec

  config.include Capybara::DSL
  config.include FactoryGirl::Syntax::Methods

  config.use_transactional_fixtures = false

  config.infer_base_class_for_anonymous_controllers = false

  config.filter_run_excluding disabled: true
  config.filter_run focus: true
  config.run_all_when_everything_filtered = true

  config.before(:suite) do
    DatabaseCleaner.strategy = :transaction
  end

  config.before(:each) do
    DatabaseCleaner.start
  end

  config.after(:each) do
    DatabaseCleaner.clean
  end
end

niestety utworzone rekordy nie są widziane w teście, baza jest pusta.

require 'spec_helper'

describe '...', type: :feature, kind: :integration do
  it '...' do
    identity = create(:identity)
    visit '/users/sign_in'
  end
end

coś muszę źle ustawiać, tylko nie mogę namierzyć błędu.

Ustaw DatabaseCleaner.strategy = :truncation dla testów z użyciem Capybary.

Tak na oko to wygląda na winę DatabaseCleanera. Nie możesz używać strategii transakcyjnej dla feature testów, gdyż serwer obsługujący capybarę jest odpalony w innym procesie/wątku. Ja używam takiej konfiguracji DatabaseCleanera:

  config.before(:suite) do
    DatabaseCleaner.clean_with(:truncation)
  end

  config.before(:each) do
    DatabaseCleaner.strategy = :transaction
  end

  config.before(:each, :js => true) do
    DatabaseCleaner.strategy = :truncation
  end

  config.before(:each) do
    DatabaseCleaner.start
  end

  config.after(:each) do
    DatabaseCleaner.clean
  end

@radarek dzięki pomogło