Rails: контроллер не видит путешествия во времени в тесте на капибару

Я пытаюсь использовать travel_to метод в ActiveSupport::Testing::TimeHelpers. Я хочу быть в состоянии использовать visit_page как будто это был другой день. я могу позвонить Date.today из блока, определенного вызовом travel_to, и это дает мне дату, которую я пытаюсь проверить. Однако когда Date.today вызывается из контроллера страницы, которую я посещаю с капибарой, она всегда дает мне сегодняшнюю дату.

Вот тест:

    it 'shows the date' do
      new_time = Time.local(2017, 11, 16, 10, 0, 0)
      travel_to(new_time) do
          puts Date.today
          visit root_path
          expect(page).to have_content '2017-11-16'
      end
    end

И контроллер:

class RootPageController < ApplicationController

  def index
     @this_date = Date.today 
  end
end

И провал теста:

2017-11-16
    ...
     Failure/Error: expect(page).to have_content '2017-11-16'
       expected to find text "2017-11-16" in "2017-11-27"

У меня есть подозрение, что каким-то образом капибара вызывает призыв к Date.today в контроллере произойдет до моего travel_to блок в тесте. Есть ли способ убедиться, что этого не произойдет? Или что-то еще может происходить?

0 ответов

Другие вопросы по тегам