diff options
Diffstat (limited to 'spec/support/time_travel.rb')
-rw-r--r-- | spec/support/time_travel.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/spec/support/time_travel.rb b/spec/support/time_travel.rb new file mode 100644 index 00000000000..9dfbfd20524 --- /dev/null +++ b/spec/support/time_travel.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'active_support/testing/time_helpers' + +RSpec.configure do |config| + config.include ActiveSupport::Testing::TimeHelpers + + config.around(:example, :freeze_time) do |example| + freeze_time { example.run } + end + + config.around(:example, :time_travel_to) do |example| + date_or_time = example.metadata[:time_travel_to] + + unless date_or_time.respond_to?(:to_time) && date_or_time.to_time.present? + raise 'The time_travel_to RSpec metadata must have a Date or Time value.' + end + + travel_to(date_or_time) { example.run } + end +end |