Sha256: 0639a9780cc0b098b81e2326d2688a71c165d61ca7d91c37f4f4c24765319777

Contents?: true

Size: 1.19 KB

Versions: 14

Compression:

Stored size: 1.19 KB

Contents

require 'spec_helper'

shared_examples_for 'a correct datetime object' do
  it { should be_instance_of(DateTime) }

  its(:year)  { should == year  }
  its(:month) { should == month }
  its(:day)   { should == day   }
  its(:hour)  { should == hour  }
  its(:min)   { should == min   }
  its(:sec)   { should == sec   }
end

describe Coercer::String, '.to_datetime' do
  subject { object.to_datetime(string) }

  let(:object) { described_class.new }

  context 'with a valid date string' do
    let(:year)  { 2011 }
    let(:month) { 7    }
    let(:day)   { 22   }

    context 'not including time part' do
      let(:string) { "July, #{day}th, #{year}" }

      let(:hour) { 0 }
      let(:min)  { 0 }
      let(:sec)  { 0 }

      it_should_behave_like 'a correct datetime object'
    end

    context 'including time part' do
      let(:string) { "July, #{day}, #{year}, #{hour}:#{min}:#{sec}" }

      let(:hour) { 13 }
      let(:min)  { 44 }
      let(:sec)  { 50 }

      it_should_behave_like 'a correct datetime object'
    end
  end

  context 'with an invalid date time string' do
    let(:string) { 'non-datetime' }

    specify {
      expect { subject }.to raise_error(UnsupportedCoercion)
    }
  end
end

Version data entries

14 entries across 12 versions & 4 rubygems

Version Path
cm-admin-1.5.22 vendor/bundle/ruby/3.3.0/gems/coercible-1.0.0/spec/unit/coercible/coercer/string/to_datetime_spec.rb
cm-admin-1.5.21 vendor/bundle/ruby/3.3.0/gems/coercible-1.0.0/spec/unit/coercible/coercer/string/to_datetime_spec.rb
cm-admin-1.5.20 vendor/bundle/ruby/3.3.0/gems/coercible-1.0.0/spec/unit/coercible/coercer/string/to_datetime_spec.rb
grape-extra_validators-2.0.0 vendor/bundle/ruby/2.6.0/gems/coercible-1.0.0/spec/unit/coercible/coercer/string/to_datetime_spec.rb
grape-extra_validators-1.0.0 vendor/bundle/ruby/2.4.0/gems/coercible-1.0.0/spec/unit/coercible/coercer/string/to_datetime_spec.rb
config_gems_initialization_aim-0.1.4 vendor/bundle/ruby/2.5.0/gems/coercible-1.0.0/spec/unit/coercible/coercer/string/to_datetime_spec.rb
config_gems_initialization_aim-0.1.4 vendor/bundle/ruby/2.5.0/gems/config_gems_initialization_aim-0.1.1/vendor/bundle/ruby/2.5.0/gems/coercible-1.0.0/spec/unit/coercible/coercer/string/to_datetime_spec.rb
config_gems_initialization_aim-0.1.3 vendor/bundle/ruby/2.5.0/gems/coercible-1.0.0/spec/unit/coercible/coercer/string/to_datetime_spec.rb
config_gems_initialization_aim-0.1.3 vendor/bundle/ruby/2.5.0/gems/config_gems_initialization_aim-0.1.1/vendor/bundle/ruby/2.5.0/gems/coercible-1.0.0/spec/unit/coercible/coercer/string/to_datetime_spec.rb
coercible-1.0.0 spec/unit/coercible/coercer/string/to_datetime_spec.rb
coercible-0.2.0 spec/unit/coercible/coercer/string/to_datetime_spec.rb
coercible-0.1.0 spec/unit/coercible/coercer/string/to_datetime_spec.rb
coercible-0.0.2 spec/unit/coercible/coercer/string/to_datetime_spec.rb
coercible-0.0.1 spec/unit/coercible/coercer/string/to_datetime_spec.rb