Sha256: 25e202df9db6fed37651a7e2d95c374a871306147780baef677a4f8194ae10b0

Contents?: true

Size: 1.87 KB

Versions: 4

Compression:

Stored size: 1.87 KB

Contents

require 'spec_helper'

describe RailsAdmin::Config::Fields::Types::Datetime do
  describe '#parse_input' do
    before :each do
      @field = RailsAdmin.config(FieldTest).fields.detect { |f| f.name == :datetime_field }
      @object = FactoryGirl.create(:field_test)
      @time = ::Time.now.getutc
    end

    after :each do
      Time.zone = 'UTC'
    end

    it 'is able to read %B %d, %Y %H:%M' do
      @object = FactoryGirl.create(:field_test)
      @object.datetime_field = @field.parse_input(datetime_field: @time.strftime('%B %d, %Y %H:%M'))
      expect(@object.datetime_field.strftime('%Y-%m-%d %H:%M')).to eq(@time.strftime('%Y-%m-%d %H:%M'))
    end

    it 'is able to read %a, %d %b %Y %H:%M:%S' do
      RailsAdmin.config FieldTest do
        edit do
          field :datetime_field do
            date_format :default
          end
        end
      end
      @object = FactoryGirl.create(:field_test)
      @object.datetime_field = @field.parse_input(datetime_field: @time.strftime('%a, %d %b %Y %H:%M:%S'))
      expect(@object.datetime_field.to_s(:rfc822)).to eq(@time.to_s(:rfc822))
    end

    it 'has a customization option' do
      RailsAdmin.config FieldTest do
        list do
          field :datetime_field do
            strftime_format '%Y-%m-%d %H:%M:%S'
          end
        end
      end
      @object = FactoryGirl.create(:field_test)
      @object.datetime_field = @field.parse_input(datetime_field: @time.strftime('%Y-%m-%d %H:%M:%S'))
      expect(@object.datetime_field.to_s(:rfc822)).to eq(@time.to_s(:rfc822))
    end

    it 'does round-trip saving properly with non-UTC timezones' do
      Time.zone = 'Vienna'
      @object = FactoryGirl.create(:field_test)
      @object.datetime_field = @field.parse_input(datetime_field: '2012-09-01 12:00:00 +02:00')
      expect(@object.datetime_field).to eq(Time.zone.parse('2012-09-01 12:00:00 +02:00'))
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rails_admin-0.6.4 spec/rails_admin/config/fields/datetime_spec.rb
rails_admin-0.6.3 spec/rails_admin/config/fields/datetime_spec.rb
rails_admin-0.6.2 spec/rails_admin/config/fields/datetime_spec.rb
rails_admin-0.6.1 spec/rails_admin/config/fields/datetime_spec.rb