Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is the 'Travel' time helper not available in feature specs?

I just tried to use Rails' time helper method travel in one of my feature specs:

scenario 'published_at allows to set a publishing date in the future' do   magazine_article.update_attribute(:published_at, Time.now + 1.day)   expect { visit magazine_article_path(magazine_article.magazine_category, magazine_article) }          .to raise_error(ActiveRecord::RecordNotFound)    travel 2.days do     visit magazine_article_path(magazine_article.magazine_category, magazine_article)     expect(page).to have_content('Super awesome article')   end end  

It's giving me this:

NoMethodError:    undefined method `travel' for #<RSpec::ExampleGroups::MagazineArticles::AsUser::Viewing:0x007f84a7a95640> 

What am I missing?

http://api.rubyonrails.org/classes/ActiveSupport/Testing/TimeHelpers.html

like image 639
Flip Avatar asked Nov 08 '16 12:11

Flip


2 Answers

In order to use these helpers you have to include them into your tests.

You can do this by either including it into single test suite:

describe MyClass do   include ActiveSupport::Testing::TimeHelpers end 

or globally:

RSpec.configure do |config|   config.include ActiveSupport::Testing::TimeHelpers end 
like image 71
Andrey Deineko Avatar answered Sep 29 '22 17:09

Andrey Deineko


Following on @andrey-deineko...

I created a file time_helpers.rb under spec\support as follows:

RSpec.configure do |config|   config.include ActiveSupport::Testing::TimeHelpers end 
like image 34
Jon Kern Avatar answered Sep 29 '22 15:09

Jon Kern