Sha256: f50bc287b9f1c3d0f35ed1ce04aa1e77d9e2ff400383ac1022c2820546c03c23

Contents?: true

Size: 1.4 KB

Versions: 5

Compression:

Stored size: 1.4 KB

Contents

require "test_helper"

class KeyNameCheckTest < Minitest::Test
  def test_corrects_hash_key_name_with_fetch
    hash = { "foo" => 1, bar: 2 }

    error = assert_raises(KeyError) { hash.fetch(:bax) }
    assert_correction ":bar", error.corrections
    assert_match "Did you mean?  :bar", error.to_s

    error = assert_raises(KeyError) { hash.fetch("fooo") }
    assert_correction %("foo"), error.corrections
    assert_match %(Did you mean?  "foo"), error.to_s
  end

  def test_corrects_hash_key_name_with_fetch_values
    hash = { "foo" => 1, bar: 2 }

    error = assert_raises(KeyError) { hash.fetch_values("foo", :bar, :bax) }
    assert_correction ":bar", error.corrections
    assert_match "Did you mean?  :bar", error.to_s

    error = assert_raises(KeyError) { hash.fetch_values("foo", :bar, "fooo") }
    assert_correction %("foo"), error.corrections
    assert_match %(Did you mean?  "foo"), error.to_s
  end

  def test_corrects_sprintf_key_name
    error = assert_raises(KeyError) { sprintf("%<foo>d", {fooo: 1}) }
    assert_correction ":fooo", error.corrections
    assert_match "Did you mean?  :fooo", error.to_s
  end

  def test_corrects_env_key_name
    ENV["FOO"] = "1"
    ENV["BAR"] = "2"
    error = assert_raises(KeyError) { ENV.fetch("BAX") }
    assert_correction %("BAR"), error.corrections
    assert_match %(Did you mean?  "BAR"), error.to_s
  ensure
    ENV.delete("FOO")
    ENV.delete("BAR")
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
did_you_mean-1.3.1 test/spell_checking/key_name_check_test.rb
did_you_mean-1.2.2 test/spell_checking/key_name_check_test.rb
did_you_mean-1.3.0 test/spell_checking/key_name_check_test.rb
did_you_mean-1.2.1 test/spell_checking/key_name_check_test.rb
did_you_mean-1.2.0 test/spell_checking/key_name_check_test.rb