Sha256: 980db40ac6435aff31cb33940577672485c88e2f4bc96e04577e1804be97d398

Contents?: true

Size: 1.11 KB

Versions: 7

Compression:

Stored size: 1.11 KB

Contents

# frozen_string_literal: true

require_relative "../../spec_helper"

require_relative "../../../lib/ultravisor/child"

describe Ultravisor::Child do
  let(:base_args) { { id: :bob, klass: mock_class, method: :run } }
  let(:child) { Ultravisor::Child.new(**args) }
  let(:mock_class) { Class.new.tap { |k| k.class_eval { def run; end } } }

  describe "#restart_delay" do
    context "by default" do
      let(:args) { base_args }

      it "returns the default delay" do
        expect(child.restart_delay).to eq(1)
      end
    end

    context "with a specified numeric delay" do
      let(:args) { base_args.merge(restart_policy: { delay: 3.14159 }) }

      it "returns the specified delay" do
        expect(child.restart_delay).to be_within(0.00001).of(3.14159)
      end
    end

    context "with a delay range" do
      let(:args) { base_args.merge(restart_policy: { delay: 2..5 }) }

      it "returns a delay in the given range" do
        delays = 10.times.map { child.restart_delay }

        expect(delays.all? { |d| (2..5).include?(d) }).to be(true)
        expect(delays.uniq.length).to eq(10)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
service_skeleton-2.1.0 ultravisor/spec/ultravisor/child/restart_delay_spec.rb
service_skeleton-1.0.5 ultravisor/spec/ultravisor/child/restart_delay_spec.rb
service_skeleton-2.0.2 ultravisor/spec/ultravisor/child/restart_delay_spec.rb
service_skeleton-2.0.1 ultravisor/spec/ultravisor/child/restart_delay_spec.rb
service_skeleton-2.0.0 ultravisor/spec/ultravisor/child/restart_delay_spec.rb
service_skeleton-1.0.4 ultravisor/spec/ultravisor/child/restart_delay_spec.rb
service_skeleton-0.0.0.1.ENOTAG ultravisor/spec/ultravisor/child/restart_delay_spec.rb