Skip to content

Commit

Permalink
fixed some more edge cases
Browse files Browse the repository at this point in the history
  • Loading branch information
frankmt committed May 2, 2014
1 parent 33f8044 commit c8a2fbf
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ function SpreeDeliveryOptions() {
var baselineTime = moment().format('H:mm');

var tomorrow = moment().add('days', 1);
if (moment(deliveryDate).isAfter(tomorrow)) {
if (moment(deliveryDate, "DD-MM-YYYY").isAfter(tomorrow)) {
baselineTime = "00:01";
}

Expand Down
6 changes: 5 additions & 1 deletion lib/spree_delivery_options/delivery_options_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@ module DeliveryOptionsService
private

def current_delivery_options_for_date(delivery_date)
delivery_options_for_date_and_time(delivery_date, Time.zone.now.strftime("%H:%M"))
if delivery_date > (Date.current + 1.day)
delivery_options_for_date_and_time(delivery_date, "00:01")
else
delivery_options_for_date_and_time(delivery_date, Time.zone.now.strftime("%H:%M"))
end
end

def delivery_options_for_date_and_time(delivery_date, time_string)
Expand Down
14 changes: 13 additions & 1 deletion spec/models/order_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
describe "valid_delivery_options?" do

before :each do
SpreeDeliveryOptions::Config.delivery_time_options = [{"13:15" => {monday: ['Between 6-7am']}, "20:00" => {monday: ['6pm to 7:30pm']}}].to_json
SpreeDeliveryOptions::Config.delivery_time_options = [{"13:15" => {monday: ['Between 6-7am'], tuesday: ['Between 6-7am'], wednesday: ['Between 6-7am']}, "20:00" => {monday: ['6pm to 7:30pm']}}].to_json
end

it 'should not be valid if delivery date is in the past' do
Expand Down Expand Up @@ -125,6 +125,18 @@
Timecop.return
end

it 'should be valid if delivery date is after tomorrow morning even when its after the morning cutoff time' do
time_now = DateTime.parse("17/11/2013 19:14 +1100", "%d/%m/%Y %H:%M %z")
Timecop.freeze(time_now)

order.delivery_date = '19/11/2013'
order.delivery_time = 'Between 6-7am'

order.valid_delivery_options?.should == true
order.errors[:delivery_date].should be_empty
Timecop.return
end

context 'delivery time' do

before :each do
Expand Down

0 comments on commit c8a2fbf

Please sign in to comment.