Sha256: 18a21f29c2bcfe5ba71c0b41bcc281f1dc999cd2a11318954b93096c7f144b8b

Contents?: true

Size: 1014 Bytes

Versions: 12

Compression:

Stored size: 1014 Bytes

Contents

require 'spec_helper'

describe Coercer::TimeCoercions, '.to_datetime' do
  subject { object.to_datetime(value) }

  let(:object)  { coercer.new }
  let(:coercer) { Class.new(Coercer::Object) { include Coercer::TimeCoercions } }
  let(:value)   { mock('value') }

  after do
    Coercer::Object.descendants.delete(coercer)
  end

  context 'when the value responds to #to_datetime' do
    before do
      object.extend Coercer::TimeCoercions

      value.should_receive(:to_datetime).and_return(DateTime.new(2011, 1, 1, 0, 0, 0))
    end

    it { should be_instance_of(DateTime) }

    it { should eql(DateTime.new(2011, 1, 1, 0, 0, 0)) }
  end

  context 'when the value does not respond to #to_datetime' do
    before do
      object.extend Coercer::TimeCoercions

      # use a string that DateTime.parse can handle
      value.should_receive(:to_s).and_return('2011-01-01T00:00:00+00:00')
    end

    it { should be_instance_of(DateTime) }

    it { should eql(DateTime.new(2011, 1, 1, 0, 0, 0)) }
  end
end

Version data entries

12 entries across 10 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/time_coercions/to_datetime_spec.rb
cm-admin-1.5.21 vendor/bundle/ruby/3.3.0/gems/coercible-1.0.0/spec/unit/coercible/coercer/time_coercions/to_datetime_spec.rb
cm-admin-1.5.20 vendor/bundle/ruby/3.3.0/gems/coercible-1.0.0/spec/unit/coercible/coercer/time_coercions/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/time_coercions/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/time_coercions/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/time_coercions/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/time_coercions/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/time_coercions/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/time_coercions/to_datetime_spec.rb
coercible-1.0.0 spec/unit/coercible/coercer/time_coercions/to_datetime_spec.rb
coercible-0.2.0 spec/unit/coercible/coercer/time_coercions/to_datetime_spec.rb
coercible-0.1.0 spec/unit/coercible/coercer/time_coercions/to_datetime_spec.rb