Sha256: c7dbb8517479aa123666e5992060bcc93798dbcfc10dd096697cbe35ca24dc93

Contents?: true

Size: 1.81 KB

Versions: 1

Compression:

Stored size: 1.81 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 TraceFilterTest < 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]
      super
    end

    def test_filter_method_not_auth
      cond = Config.new
      cond.negatives[:method_id] = 'auth'
      @trace_filter = TraceFilter.new(cond)
      filtered = @tps.reject { |tp| @trace_filter.block_it?(tp) }
      assert_equal [@user_tp], filtered
    end

    def test_filter_class_is_admin
      cond = Config.new
      cond.positives[:defined_class] = 'Admin'
      @trace_filter = TraceFilter.new(cond)
      filtered = @tps.reject { |tp| @trace_filter.block_it?(tp) }
      assert_equal [], filtered
    end

    def test_filter_method_is_auth
      cond = Config.new
      cond.positives[:method_id] = 'auth'
      @trace_filter = TraceFilter.new(cond)
      filtered = @tps.reject { |tp| @trace_filter.block_it?(tp) }
      assert_equal [@devise_tp, @warden_tp], filtered
    end

    def test_filter_method_is_new_class_is_devise
      cond = Config.new
      cond.positives[:defined_class] = 'Devise'
      cond.positives[:method_id] = 'new'
      @trace_filter = TraceFilter.new(cond)
      filtered = @tps.reject { |tp| @trace_filter.block_it?(tp) }
      assert_equal [@devise_tp, @user_tp], filtered
    end

    def test_filter_class_is_devise_or_warden
      cond = Config.new
      cond.positives[:defined_class] = 'Warden|User'
      @trace_filter = TraceFilter.new(cond)
      filtered = @tps.reject { |tp| @trace_filter.block_it?(tp) }
      assert_equal [@warden_tp, @user_tp], filtered
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
source_route-0.6.0 test/source_route/trace_filter_test.rb