Sha256: d2406a40eb57ae3dd9554ea0fd5f070ee411cc0d3c8b4e71977a96f3717e6d96

Contents?: true

Size: 1.91 KB

Versions: 1

Compression:

Stored size: 1.91 KB

Contents

# frozen_string_literal: true
require 'test_helper'

class ReceiverTest < ASDeprecationTracker::TestCase
  def test_deprecation_whitelisted
    whitelist = ASDeprecationTracker::Whitelist.new
    ASDeprecationTracker.expects(:whitelist).returns(whitelist)
    stack = caller
    whitelist.expects(:matches?).with(message: 'deprecated call', callstack: stack).returns(true)
    ASDeprecationTracker::Receiver.new.deprecation(event(message: 'deprecated call', callstack: stack))
  end

  def test_deprecation_unknown
    whitelist = ASDeprecationTracker::Whitelist.new
    ASDeprecationTracker.expects(:whitelist).returns(whitelist)
    stack = caller
    whitelist.expects(:matches?).with(message: 'deprecated call', callstack: stack).returns(false)
    e = assert_raises(ActiveSupport::DeprecationException) do
      ASDeprecationTracker::Receiver.new.deprecation(event(message: 'deprecated call', callstack: stack))
    end
    assert_equal 'deprecated call', e.message
    assert_equal stack, e.backtrace
  end

  def test_deprecation_unknown_record
    whitelist = ASDeprecationTracker::Whitelist.new
    ASDeprecationTracker.expects(:whitelist).returns(whitelist)
    stack = caller
    whitelist.expects(:matches?).with(message: 'deprecated call', callstack: stack).returns(false)
    ASDeprecationTracker::Writer.any_instance.expects(:add).with('deprecated call', stack)
    ASDeprecationTracker::Writer.any_instance.expects(:write_file)
    ENV['AS_DEPRECATION_RECORD'] = 'true'
    ASDeprecationTracker::Receiver.new.deprecation(event(message: 'deprecated call', callstack: stack))
  ensure
    ENV.delete('AS_DEPRECATION_RECORD')
  end

  def test_subscription
    ASDeprecationTracker::Receiver.any_instance.expects(:deprecation)
    ActiveSupport::Notifications.instrument('deprecation.rails', message: 'test')
  end

  private

  def event(payload)
    mock('event').tap do |event|
      event.stubs(:payload).returns(payload)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
as_deprecation_tracker-1.0.0 test/receiver_test.rb