Sha256: 719c2f3d25af013c356e14515ab7973b16615454b4e9779a36fce2787f86a64f

Contents?: true

Size: 1.75 KB

Versions: 2

Compression:

Stored size: 1.75 KB

Contents

require_relative 'test_helper'

class SimilarNameFinderTest < Minitest::Test
  class User
    def call_flrst_name;  f1rst_name; end
    def call_fr0m_module; fr0m_module; end
    def first_name; end
  end

  module UserModule
    def from_module; end
  end

  def setup
    user = User.new.extend(UserModule)

    @errors = {
      from_instance_method: assert_raises(NameError){ user.call_flrst_name },
      from_module_method:   assert_raises(NameError){ user.call_fr0m_module }
    }

    begin
      userr
    rescue NameError => e
      @instance_variable_error = e
    end
  end

  def test_similar_methods
    assert @errors[:from_instance_method].method_finder.similar_methods.include?(:first_name)
    assert @errors[:from_module_method].method_finder.similar_methods.include?(:from_module)
  end

  def test_similar_local_variables
    assert @instance_variable_error.method_finder.similar_local_variables.include?(:user)
  end

  def test_did_you_mean?
    assert_match "Did you mean?", @errors[:from_instance_method].did_you_mean?
    assert_match "instance methods: #first_name", @errors[:from_instance_method].did_you_mean?

    assert_match "Did you mean?", @errors[:from_module_method].did_you_mean?
    assert_match "instance methods: #from_module", @errors[:from_module_method].did_you_mean?

    assert_match "Did you mean?", @instance_variable_error.did_you_mean?
    assert_match "local variables: user", @instance_variable_error.did_you_mean?
  end

  def test_message
    assert_match @errors[:from_instance_method].did_you_mean?, @errors[:from_instance_method].message
    assert_match @errors[:from_module_method].did_you_mean?, @errors[:from_module_method].message
    assert_match @instance_variable_error.did_you_mean?, @instance_variable_error.message
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
did_you_mean-0.5.0 test/similar_name_finder_test.rb
did_you_mean-0.4.0 test/similar_name_finder_test.rb