Sha256: de4bf728bbe2610ec7297cf5a1c655341227b77d59743ec81437d5a677819869

Contents?: true

Size: 1.9 KB

Versions: 10

Compression:

Stored size: 1.9 KB

Contents

require 'test_helper'

module SourceRoute
  class Devise; end
  class Warden; end
  class User; end

  FakeTp = Struct.new(:method_id, :defined_class, :lineno)

  class TpFilterTest < Minitest::Test

    def setup
      @devise_tp = FakeTp.new(:auth, Devise, 5)
      @warden_tp = FakeTp.new(:auth, Warden, 6)
      @user_tp = FakeTp.new(:new, User, 8)
      @tps = [@devise_tp, @warden_tp, @user_tp]
      @result_config = GenerateResult::Config.new('silence', [], false, false)
    end

    def test_filter_method_not_auth
      cond = Wrapper::Condition.new([:call], {method_id: 'auth'}, {}, @result_config)
      @tp_filter = TpFilter.new(cond)
      filtered = @tps.reject { |tp| @tp_filter.block_it?(tp) }
      assert_equal [@user_tp], filtered
    end

    def test_filter_class_is_admin
      cond = Wrapper::Condition.new([:call], {}, {defined_class: 'Admin'}, @result_config)
      @tp_filter = TpFilter.new(cond)
      filtered = @tps.reject { |tp| @tp_filter.block_it?(tp) }
      assert_equal [], filtered
    end

    def test_filter_method_is_auth
      cond = Wrapper::Condition.new([:call], {}, {method_id: 'auth'}, @result_config)
      @tp_filter = TpFilter.new(cond)
      filtered = @tps.reject { |tp| @tp_filter.block_it?(tp) }
      assert_equal [@devise_tp, @warden_tp], filtered
    end

    def test_filter_method_is_new_class_is_devise
      cond = Wrapper::Condition.new([:call], {}, {defined_class: 'Devise', method_id: 'new'}, @result_config)
      @tp_filter = TpFilter.new(cond)
      filtered = @tps.reject { |tp| @tp_filter.block_it?(tp) }
      assert_equal [@devise_tp, @user_tp], filtered
    end

    def test_filter_class_is_devise_or_warden
      cond = Wrapper::Condition.new([:call], {}, {defined_class: 'Warden|User'}, @result_config)
      @tp_filter = TpFilter.new(cond)
      filtered = @tps.reject { |tp| @tp_filter.block_it?(tp) }
      assert_equal [@warden_tp, @user_tp], filtered
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
source_route-0.2.0 test/source_route/tp_filter_test.rb
source_route-0.1.8 test/source_route/tp_filter_test.rb
source_route-0.1.7 test/source_route/tp_filter_test.rb
source_route-0.1.6 test/source_route/tp_filter_test.rb
source_route-0.1.5 test/source_route/tp_filter_test.rb
source_route-0.1.4 test/tp_filter_test.rb
source_route-0.1.3 test/tp_filter_test.rb
source_route-0.1.2 test/tp_filter_test.rb
source_route-0.1.1 test/tp_filter_test.rb
source_route-0.1.0 test/tp_filter_test.rb