lib/spreewald/timecop_steps.rb in spreewald-0.1.1 vs lib/spreewald/timecop_steps.rb in spreewald-0.1.2
- old
+ new
@@ -1,14 +1,30 @@
+# Steps to travel through time using [Timecop](https://github.com/jtrupiano/timecop).
+#
+# See [this article](https://makandracards.com/makandra/1222-useful-cucumber-steps-to-travel-through-time-with-timecop) for details.
+
+
if defined?(Timecop)
+ # Example:
+ #
+ # Given the date is "2012-02-10"
+ # Given the time is "2012-02-10 13:40"
When /^the (?:date|time) is "(\d{4}-\d{2}-\d{2}(?: \d{1,2}:\d{2})?)"$/ do |time|
Timecop.travel Time.parse(time)
end
+ # Example:
+ #
+ # Given the time is "13:40"
When /^the time is "(\d{1,2}:\d{2})"$/ do |time|
Timecop.travel Time.parse(time) # date will be today
end
+ # Example:
+ #
+ # When it is 10 minutes later
+ # When it is a few hours earlier
When /^it is (\d+|a|some|a few) (seconds?|minutes?|hours?|days?|weeks?|months?|years?) (later|earlier)$/ do |amount, unit, direction|
amount = case amount
when 'a'
1
when 'some', 'a few'