Sha256: 0c562afe32570ca250e6e0bf1a8c1aadea7b931b9c3f4e6549c9b45eb7b65aec

Contents?: true

Size: 1.83 KB

Versions: 8

Compression:

Stored size: 1.83 KB

Contents

require 'test_helper'

class BindingTest < MiniTest::Spec
  Binding = Representable::Binding
  let (:render_nil_definition) { Representable::Definition.new(:song, :render_nil => true) }

  describe "#skipable_empty_value?" do
    let (:binding) { Binding.new(render_nil_definition, nil, nil) }

    # don't skip when present.
    it { binding.skipable_empty_value?("Disconnect, Disconnect").must_equal false }

    # don't skip when it's nil and render_nil: true
    it { binding.skipable_empty_value?(nil).must_equal false }

    # skip when nil and :render_nil undefined.
    it { Binding.new(Representable::Definition.new(:song), nil, nil).skipable_empty_value?(nil).must_equal true }

    # don't skip when nil and :render_nil undefined.
    it { Binding.new(Representable::Definition.new(:song), nil, nil).skipable_empty_value?("Fatal Flu").must_equal false }
  end


  describe "#default_for" do
    let (:definition) { Representable::Definition.new(:song, :default => "Insider") }
    let (:binding) { Binding.new(definition, nil, nil) }

    # return value when value present.
    it { binding.default_for("Black And Blue").must_equal "Black And Blue" }

    # return false when value false.
    it { binding.default_for(false).must_equal false }

    # return default when value nil.
    it { binding.default_for(nil).must_equal "Insider" }

    # return nil when value nil and render_nil: true.
    it { Binding.new(render_nil_definition, nil, nil).default_for(nil).must_equal nil }

    # return nil when value nil and render_nil: true, even when :default is set" do
    it { Binding.new(Representable::Definition.new(:song, :render_nil => true, :default => "The Quest"), nil, nil).default_for(nil).must_equal nil }

    # return nil if no :default
    it { Binding.new(Representable::Definition.new(:song), nil, nil).default_for(nil).must_equal nil }
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
representable-2.1.8 test/binding_test.rb
representable-2.1.7 test/binding_test.rb
representable-2.1.6 test/binding_test.rb
representable-2.1.5 test/binding_test.rb
representable-2.1.4 test/binding_test.rb
representable-2.1.3 test/binding_test.rb
representable-2.1.1 test/binding_test.rb
representable-2.1.0 test/binding_test.rb