Sha256: 8a158f4878440793cb2f6f254ad0d7cb674e8adc7fc64875d28d29765f683c95

Contents?: true

Size: 1.94 KB

Versions: 14

Compression:

Stored size: 1.94 KB

Contents

require 'rails_helper'

describe "#pretty_format" do
  include ActiveAdmin::ViewHelpers::DisplayHelper

  def method_missing(*args, &block)
    mock_action_view.send *args, &block
  end

  {String: 'hello', Fixnum: 23, Float: 5.67, Bignum: 10**30,
    'Arbre::Element' => Arbre::Element.new.br(:foo)
  }.each do |klass, obj|
    it "should call `to_s` on #{klass}s" do
      expect(obj).to be_a klass.to_s.constantize # safeguard for Bignum
      expect(pretty_format(obj)).to eq obj.to_s
    end
  end

  context "given a Date or a Time" do
    it "should return a localized Date or Time with long format" do
      t = Time.now
      expect(self).to receive(:localize).with(t, {format: :long}) { "Just Now!" }
      expect(pretty_format(t)).to eq "Just Now!"
    end

    context "actually do the formatting" do
      it "should actually do the formatting" do
        t = Time.utc(1985,"feb",28,20,15,1)
        expect(pretty_format(t)).to eq "February 28, 1985 20:15"
      end

      context "with non-English locale" do
        before(:all) do
          @previous_locale = I18n.locale.to_s
          I18n.locale = "es"
        end
        after(:all) do
          I18n.locale = @previous_locale
        end
        it "should return a localized Date or Time with long format for non-english locale" do
          t = Time.utc(1985,"feb",28,20,15,1)
          expect(pretty_format(t)).to eq "28 de febrero de 1985 20:15"
        end
      end
    end
  end

  context "given an ActiveRecord object" do
    it "should delegate to auto_link" do
      post = Post.new
      expect(self).to receive(:auto_link).with(post) { "model name" }
      expect(pretty_format(post)).to eq "model name"
    end
  end

  context "given an arbitrary object" do
    it "should delegate to `display_name`" do
      something = Class.new.new
      expect(self).to receive(:display_name).with(something) { "I'm not famous" }
      expect(pretty_format(something)).to eq "I'm not famous"
    end
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
yousty-activeadmin-1.0.17.pre spec/unit/pretty_format_spec.rb
yousty-activeadmin-1.0.16.pre spec/unit/pretty_format_spec.rb
yousty-activeadmin-1.0.15.pre spec/unit/pretty_format_spec.rb
yousty-activeadmin-1.0.14.pre spec/unit/pretty_format_spec.rb
yousty-activeadmin-1.0.13.pre spec/unit/pretty_format_spec.rb
yousty-activeadmin-1.0.12.pre spec/unit/pretty_format_spec.rb
yousty-activeadmin-1.0.11.pre spec/unit/pretty_format_spec.rb
yousty-activeadmin-1.0.10.pre spec/unit/pretty_format_spec.rb
yousty-activeadmin-1.0.9.pre spec/unit/pretty_format_spec.rb
yousty-activeadmin-1.0.8.pre spec/unit/pretty_format_spec.rb
activeadmin-1.0.0.pre1 spec/unit/pretty_format_spec.rb
yousty-activeadmin-1.0.7.pre spec/unit/pretty_format_spec.rb
yousty-activeadmin-1.0.6.pre spec/unit/pretty_format_spec.rb
yousty-activeadmin-1.0.5.pre spec/unit/pretty_format_spec.rb