У меня есть спецификация JS, которую я пытаюсь запустить с Capybara Webkit. Однако, похоже, он не может найти записи в моей базе данных.
Спекулятивный вопрос выглядит следующим образом
it "should allow pledging to a Hardback level", js: true do
book = FactoryGirl.create :book
visit book_path(book)
click_link "pledge-btn"
end
К сожалению, запрос к book_path(book)
404s из-за невозможности найти книгу.
Если я :js
флаг :js
, тест пройден.
У меня есть DatabaseCleaner
настроенный для использования :truncation
для спецификаций JS, как рекомендуемый метод.
# spec/support/database_cleaner.rb
RSpec.configure do |config|
config.use_transactional_fixtures = false
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
DatabaseMetadata.create!(:sanitized_at => DateTime.now)
end
config.after(:each) do
DatabaseCleaner.clean
end
end
Я могу puts
книгу в тесте, и он будет найден.
it "should allow pledging to a Hardback level", js: true do
book = FactoryGirl.create :book
visit book_path(book)
p Book.first
# => .. the book instance
click_link "pledge-btn"
end
Я также попробовал этот метод общего подключения, который, похоже, тоже не решает проблему.
Что еще может быть не так?