spec/schedulability/schedule_spec.rb in schedulability-0.2.0 vs spec/schedulability/schedule_spec.rb in schedulability-0.3.0

- old
+ new

@@ -344,10 +344,66 @@ expect( schedule ).to_not include( time + 1.hour ) expect( schedule ).to_not include( time + 3.hours ) end + + it "handles 12am correctly" do + schedule = described_class.parse( "hr {12am}" ) + time = Time.iso8601( '2015-12-15T00:00:00-00:00' ) + + expect( schedule ).to_not include( time - 1 ) + expect( schedule ).to include( time ) + expect( schedule ).to include( time + 1.minute ) + expect( schedule ).to include( time + 20.minutes ) + expect( schedule ).to include( time + (1.hour - 1.minute) ) + expect( schedule ).to_not include( time + 1.hour ) + expect( schedule ).to_not include( time + 3.hours ) + end + + + it "handles am times correctly" do + schedule = described_class.parse( "hr {9am}" ) + time = Time.iso8601( '2015-12-15T09:00:00-00:00' ) + + expect( schedule ).to_not include( time - 1 ) + expect( schedule ).to include( time ) + expect( schedule ).to include( time + 1.minute ) + expect( schedule ).to include( time + 20.minutes ) + expect( schedule ).to include( time + (1.hour - 1.minute) ) + expect( schedule ).to_not include( time + 1.hour ) + expect( schedule ).to_not include( time + 3.hours ) + end + + + it "handles 0 correctly" do + schedule = described_class.parse( "hr {0}" ) + time = Time.iso8601( '2015-12-15T00:00:00-00:00' ) + + expect( schedule ).to_not include( time - 1 ) + expect( schedule ).to include( time ) + expect( schedule ).to include( time + 1.minute ) + expect( schedule ).to include( time + 20.minutes ) + expect( schedule ).to include( time + (1.hour - 1.minute) ) + expect( schedule ).to_not include( time + 1.hour ) + expect( schedule ).to_not include( time + 3.hours ) + end + + + it "allows hour values equal to 0" do + expect { + described_class.parse( 'hr {0}' ) + }.not_to raise_error + expect { + described_class.parse( 'hr {0 5 10}' ) + }.not_to raise_error + expect { + described_class.parse( 'hr {0-23}' ) + }.not_to raise_error + end + + it "matches single day number values as a 86400-second exclusive range" do schedule = described_class.parse( "md {11}" ) expect( schedule ).to_not include( '2014-06-10T23:00:00-00:00' ) expect( schedule ).to_not include( '2014-06-10T23:59:59-00:00' ) @@ -924,6 +980,5 @@ end end end -