Sha256: 6b84c4159f4bffff94fc08c89d5c7812e01bbc8ffaacac902eead7116ea316d5

Contents?: true

Size: 1.32 KB

Versions: 5

Compression:

Stored size: 1.32 KB

Contents

require 'spec_helper'
require 'gris/grape_extensions/date_time_helpers'

describe Gris::DateTimeHelpers do
  before do
    @helper = Class.new do
      include Gris::DateTimeHelpers
    end.new
  end

  it 'parses a date string' do
    MY_TIME = '2011-01-02 17:00:23 UTC'.freeze
    actual = @helper.string_to_datetime(MY_TIME)
    expect(actual.to_s).to eq(MY_TIME)
  end

  it 'converts seconds since epoch' do
    SECONDS = '1429823204'.freeze
    actual = @helper.string_to_datetime(SECONDS)
    expect(actual).to eq(Time.at(SECONDS.to_i))
  end

  it "returns '' for a blank string" do
    expect(@helper.string_to_datetime('')).to eq('')
  end

  it 'returns nil for a nil string' do
    expect(@helper.string_to_datetime(nil)).to be_nil
  end

  it 'sets the keys to be converted' do
    @helper.datetime_params :created_at, :updated_at
    expect(@helper.keys_to_convert).to eq(Set.new([:created_at, :updated_at]))
  end

  it 'converts the correct keys' do
    @helper.datetime_params :created_at, :updated_at
    params = { message: 'hi', created_at: 1_293_901_200, updated_at: 1_325_397_600 }
    @helper.process_datetime_params(params)
    expect(params[:message]).to eq('hi')
    expect(params[:created_at].strftime).to eq('2011-01-01T17:00:00+00:00')
    expect(params[:updated_at].strftime).to eq('2012-01-01T06:00:00+00:00')
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
gris-0.6.8 spec/grape_extensions/date_time_helpers_spec.rb
gris-0.6.7 spec/grape_extensions/date_time_helpers_spec.rb
gris-0.6.6 spec/grape_extensions/date_time_helpers_spec.rb
gris-0.6.5 spec/grape_extensions/date_time_helpers_spec.rb
gris-0.6.2 spec/grape_extensions/date_time_helpers_spec.rb