spec/integration/shared/between_times.rb in by_star-4.0.0 vs spec/integration/shared/between_times.rb in by_star-4.0.1

- old
+ new

@@ -1,99 +1,99 @@ -require 'spec_helper' - -shared_examples_for 'between_times' do - - describe '#between_times' do - subject { Post.between_times(Time.zone.parse('2014-01-01'), Time.zone.parse('2014-01-06')) } - - if testing_active_record? - it { is_expected.to be_a(ActiveRecord::Relation) } - else testing_mongoid? - it { is_expected.to be_a(Mongoid::Criteria) } - end - - it { expect(subject.count).to eql(3) } - - context 'one-sided query' do - - context 'point query' do - - context 'only start time' do - subject { Post.between_times(Time.zone.parse('2014-01-01'), nil) } - it { expect(subject.count).to eql(12) } - end - - context 'only end time' do - subject { Post.between_times(nil, Time.zone.parse('2014-01-01')) } - it { expect(subject.count).to eql(10) } - - context 'neither start nor end time' do - subject { Post.between_times(nil, nil) } - it { expect(subject.count).to eql(22) } - end - end - end - - context 'timespan loose query' do - - context 'only start time' do - subject { Event.between_times(Time.zone.parse('2014-01-01'), nil, strict: false) } - it { expect(subject.count).to eql(17) } - end - - context 'only end time' do - subject { Event.between_times(nil, Time.zone.parse('2014-01-01'), strict: false) } - it { expect(subject.count).to eql(13) } - - context 'neither start nor end time' do - subject { Event.between_times(nil, nil) } - it { expect(subject.count).to eql(30) } - end - end - end - - context 'timespan strict query' do - - context 'only start time' do - subject { Event.between_times(Time.zone.parse('2014-01-01'), nil) } - it { expect(subject.count).to eql(17) } - end - - context 'only end time' do - subject { Event.between_times(nil, Time.zone.parse('2014-01-01')) } - it { expect(subject.count).to eql(13) } - - context 'neither start nor end time' do - subject { Event.between_times(nil, nil) } - it { expect(subject.count).to eql(30) } - end - end - end - end - - context 'two-sided query' do - context 'DST starts (Sydney)', sydney: true do - context 'day before' do - subject { Event.between_times(Date.parse('2020-04-04'), Date.parse('2020-04-04'), offset: 5.hours) } - it { expect(subject.count).to eql(3) } - end - - context 'same day' do - subject { Event.between_times(Date.parse('2020-04-05'), Date.parse('2020-04-05'), offset: 5.hours) } - it { expect(subject.count).to eql(1) } - end - end - - context 'when DST ends (Sydney)', sydney: true do - context 'day before' do - subject { Event.between_times(Date.parse('2020-10-03'), Date.parse('2020-10-03'), offset: 5.hours) } - it { expect(subject.count).to eql(1) } - end - - context 'same day' do - subject { Event.between_times(Date.parse('2020-10-04'), Date.parse('2020-10-04'), offset: 5.hours) } - it { expect(subject.count).to eql(3) } - end - end - end - end -end +require 'spec_helper' + +shared_examples_for 'between_times' do + + describe '#between_times' do + subject { Post.between_times(Time.zone.parse('2014-01-01'), Time.zone.parse('2014-01-06')) } + + if testing_active_record? + it { is_expected.to be_a(ActiveRecord::Relation) } + else testing_mongoid? + it { is_expected.to be_a(Mongoid::Criteria) } + end + + it { expect(subject.count).to eql(3) } + + context 'one-sided query' do + + context 'point query' do + + context 'only start time' do + subject { Post.between_times(Time.zone.parse('2014-01-01'), nil) } + it { expect(subject.count).to eql(12) } + end + + context 'only end time' do + subject { Post.between_times(nil, Time.zone.parse('2014-01-01')) } + it { expect(subject.count).to eql(10) } + + context 'neither start nor end time' do + subject { Post.between_times(nil, nil) } + it { expect(subject.count).to eql(22) } + end + end + end + + context 'timespan loose query' do + + context 'only start time' do + subject { Event.between_times(Time.zone.parse('2014-01-01'), nil, strict: false) } + it { expect(subject.count).to eql(17) } + end + + context 'only end time' do + subject { Event.between_times(nil, Time.zone.parse('2014-01-01'), strict: false) } + it { expect(subject.count).to eql(13) } + + context 'neither start nor end time' do + subject { Event.between_times(nil, nil) } + it { expect(subject.count).to eql(30) } + end + end + end + + context 'timespan strict query' do + + context 'only start time' do + subject { Event.between_times(Time.zone.parse('2014-01-01'), nil) } + it { expect(subject.count).to eql(17) } + end + + context 'only end time' do + subject { Event.between_times(nil, Time.zone.parse('2014-01-01')) } + it { expect(subject.count).to eql(13) } + + context 'neither start nor end time' do + subject { Event.between_times(nil, nil) } + it { expect(subject.count).to eql(30) } + end + end + end + end + + context 'two-sided query' do + context 'DST starts (Sydney)', sydney: true do + context 'day before' do + subject { Event.between_times(Date.parse('2020-04-04'), Date.parse('2020-04-04'), offset: 5.hours) } + it { expect(subject.count).to eql(3) } + end + + context 'same day' do + subject { Event.between_times(Date.parse('2020-04-05'), Date.parse('2020-04-05'), offset: 5.hours) } + it { expect(subject.count).to eql(1) } + end + end + + context 'when DST ends (Sydney)', sydney: true do + context 'day before' do + subject { Event.between_times(Date.parse('2020-10-03'), Date.parse('2020-10-03'), offset: 5.hours) } + it { expect(subject.count).to eql(1) } + end + + context 'same day' do + subject { Event.between_times(Date.parse('2020-10-04'), Date.parse('2020-10-04'), offset: 5.hours) } + it { expect(subject.count).to eql(3) } + end + end + end + end +end