Sha256: ee4f95def8d778d5690284cf61cf4aaf8b9318a36b431ac10df926e39a127bdc

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 KB

Contents

require 'test_helper'

module Workarea
  class CircuitBreakerTest < Workarea::TestCase
    def test_add_service
      Workarea.with_config do |config|
        CircuitBreaker.add_service(:fake_service)

        assert(config.circuit_breaker.circuits.has_key?("fake_service"))
      end
    end

    def test_brackets
      Workarea.with_config do |_config|
        options = { max_fails: 3, window: 5.minutes, break_for: 5.minutes }
        CircuitBreaker.add_service(:fake_service, **options)

        circuit = CircuitBreaker[:fake_service]

        assert_equal("fake_service", circuit.name)
        assert_equal(options, circuit.options)
      end
    end

    if running_from_source?
      def test_config_is_frozen
        Workarea::CircuitBreaker.freeze_config!

        assert(Workarea.config.circuit_breaker.frozen?)
        assert(Workarea.config.circuit_breaker.circuits.frozen?)
        assert(Workarea.config.circuit_breaker.circuit_defaults.frozen?)
      end
    end

    def test_capture_exception_returns_nil_when_capture_disallowed
      error = StandardError.new("This will not be captured.")
      event = CircuitBreaker.capture_exception(error)

      assert_nil(event)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
workarea-circuit_breaker-1.0.3 test/lib/workarea/circuit_breaker_test.rb