Sha256: 631443efbb4eca55744dce77daba3b99aa85326c728e8edd4ad6ded28d9cf87b

Contents?: true

Size: 1.5 KB

Versions: 2

Compression:

Stored size: 1.5 KB

Contents

require 'spec_helper'

shared_examples_for 'by week' do

  describe '#by_week' do

    context 'point-in-time' do
      subject { Post.by_week('2014-01-02') }
      its(:count){ should eq 4 }
    end

    context 'timespan' do
      subject { Event.by_week(0) }
      its(:count){ should eq 7 }
    end

    context 'timespan strict' do
      subject { Event.by_week(Date.parse('2014-01-01'), strict: true) }
      its(:count){ should eq 0 }
    end

    context 'with :year option' do

      context 'point-in-time' do
        subject { Post.by_week(52, year: 2013) }
        its(:count){ should eq 4 }
      end

      context 'timespan' do
        subject { Event.by_week(52, year: 2013) }
        its(:count){ should eq 7 }
      end

      context 'timespan strict' do
        subject { Event.by_week(52, year: 2013, strict: true) }
        its(:count){ should eq 0 }
      end
    end

    it 'should raise an error when given an invalid argument' do
      lambda { Post.by_weekend(-1) }.should raise_error(ByStar::ParseError, 'Week number must be between 0 and 52')
      lambda { Post.by_weekend(53) }.should raise_error(ByStar::ParseError, 'Week number must be between 0 and 52')
    end

    it 'should be able to use an alternative field' do
      Event.by_week(:field => 'end_time').count.should eq 3
    end

    context ':start_day option' do
      subject { Post.by_week('2014-01-02', :start_day => :thursday) }
      its(:count){ should eq 1 }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
by_star-2.2.1 spec/integration/shared/by_week.rb
by_star-2.2.0 spec/integration/shared/by_week.rb