Skip to content

Commit a9277b7

Browse files
committed
Merge remote-tracking branch 'remotes/johnnyshields/evolve-date-to-time-local' into evolve-rework
2 parents 0c22046 + c9b1fd8 commit a9277b7

File tree

2 files changed

+45
-11
lines changed
  • lib/mongoid/criteria/queryable/extensions
  • spec/mongoid/criteria/queryable/extensions

2 files changed

+45
-11
lines changed

lib/mongoid/criteria/queryable/extensions/date.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def __evolve_date__
2525
#
2626
# @return [ Time ] The date as a local time.
2727
def __evolve_time__
28-
::Time.local(year, month, day)
28+
::Time.configured.local(year, month, day).to_time
2929
end
3030

3131
module ClassMethods

spec/mongoid/criteria/queryable/extensions/date_spec.rb

Lines changed: 44 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,54 @@
2525

2626
describe "#__evolve_time__" do
2727

28-
let(:date) do
29-
Date.new(2010, 1, 1)
30-
end
28+
context "when using ActiveSupport's time zone" do
29+
include_context 'using AS time zone'
3130

32-
let(:evolved) do
33-
date.__evolve_time__
34-
end
31+
let(:date) do
32+
Date.new(2010, 1, 1)
33+
end
3534

36-
let(:expected) do
37-
Time.local(2010, 1, 1, 0, 0, 0)
35+
let(:expected_time) do
36+
Time.zone.local(2010, 1, 1, 0, 0, 0, 0)
37+
end
38+
39+
let(:evolved) do
40+
date.__evolve_time__
41+
end
42+
43+
it 'is an AS::TimeWithZone' do
44+
expect(evolved.class).to eq(Time)
45+
end
46+
47+
it 'is equal to expected time' do
48+
expect(expected_time).to be_a(ActiveSupport::TimeWithZone)
49+
expect(evolved).to eq(expected_time)
50+
end
3851
end
3952

40-
it "returns the time" do
41-
expect(evolved).to eq(expected)
53+
context "when not using ActiveSupport's time zone" do
54+
include_context 'not using AS time zone'
55+
56+
let(:date) do
57+
Date.new(2010, 1, 1)
58+
end
59+
60+
let(:expected_time) do
61+
Time.local(2010, 1, 1, 0, 0, 0, 0)
62+
end
63+
64+
let(:evolved) do
65+
date.__evolve_time__
66+
end
67+
68+
it 'is a Time' do
69+
expect(evolved.class).to eq(Time)
70+
end
71+
72+
it 'is equal to expected time' do
73+
expect(expected_time).to be_a(Time)
74+
expect(evolved).to eq(expected_time)
75+
end
4276
end
4377
end
4478

0 commit comments

Comments
 (0)