Sha256: c7d1cf99985457a0ab53df5c1c57e6540ba28241586f9f5f64d6cdad886c1694

Contents?: true

Size: 1.56 KB

Versions: 6

Compression:

Stored size: 1.56 KB

Contents

require_relative 'spec_helper'

describe "Mutations::BooleanFilter" do
  
  it "allows booleans" do
    f = Mutations::BooleanFilter.new
    filtered, errors = f.filter(true)
    assert_equal true, filtered
    assert_equal nil, errors
    
    filtered, errors = f.filter(false)
    assert_equal false, filtered
    assert_equal nil, errors
  end
  
  it "considers non-booleans to be invalid" do
    f = Mutations::BooleanFilter.new
    [[true], {a: "1"}, Object.new].each do |thing|
      filtered, errors = f.filter(thing)
      assert_equal :boolean, errors
    end
  end
  
  it "considers nil to be invalid" do
    f = Mutations::BooleanFilter.new(nils: false)
    filtered, errors = f.filter(nil)
    assert_equal nil, filtered
    assert_equal :nils, errors
  end
  
  it "considers nil to be valid" do
    f = Mutations::BooleanFilter.new(nils: true)
    filtered, errors = f.filter(nil)
    assert_equal nil, filtered
    assert_equal nil, errors
  end
  
  it "considers certain strings to be valid booleans" do
    f = Mutations::BooleanFilter.new
    [["true", true], ["TRUE", true], ["TrUe", true], ["1", true], ["false", false], ["FALSE", false], ["FalSe", false], ["0", false], [0, false], [1, true]].each do |(str, v)|
      filtered, errors = f.filter(str)
      assert_equal v, filtered
      assert_equal nil, errors
    end
  end
  
  it "considers other string to be invalid" do
    f = Mutations::BooleanFilter.new
    ["", "truely", "2"].each do |str|
      filtered, errors = f.filter(str)
      assert_equal str, filtered
      assert_equal :boolean, errors
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mutations-0.5.9 spec/boolean_filter_spec.rb
mutations-0.5.4 spec/boolean_filter_spec.rb
mutations-0.5.3 spec/boolean_filter_spec.rb
mutations-0.5.2 spec/boolean_filter_spec.rb
mutations-0.5.1 spec/boolean_filter_spec.rb
mutations-0.5.0 spec/boolean_filter_spec.rb