Sha256: 77112dfa384b4daf8589407b158b2dca87d2feffcffc8d6db4fa82e37dcdf29b

Contents?: true

Size: 1.85 KB

Versions: 7

Compression:

Stored size: 1.85 KB

Contents

require "spec_helper"

module QueueMetricTracker
  describe QueueMetricTracker do
    let(:host)          { "localhost" }
    let(:port)          { 123 }
    let(:granularity)   { 3 }
    let(:ip)            { "1.2.3.4" }
    let(:server_name)   { "server.example" }
    let(:source_config) { {
        metric_host: host,
        metric_host_port: port,
        server_name: server_name,
        granularity: granularity
      }
    }

    describe ".configure" do
      it "stores the configuration" do
        allow(QueueMetricTracker).to receive(:ip_address).and_return(ip)
        QueueMetricTracker.configure(source_config)

        expect(QueueMetricTracker.config).to eq({
          metric_host: {
            host_ip:   ip,
            host_port: port },
          server_name: server_name,
          granularity: granularity
        })
      end
    end

    describe "#enabled?" do
      let(:config) { {} }
      subject(:metric) { WorkerRoulette::BatchSize }
      subject(:metric_object) { metric.new }

      before { QueueMetricTracker.configure(source_config.merge(config)) }

      context "when the config is nil" do
        it "returns false" do
          expect(metric_object.enabled?).to be_falsey
        end
      end

      context "when the config has no metrics defined" do
        let(:config) { { metrics: {}} }

        it "returns false" do
          expect(metric_object.enabled?).to be_falsey
        end
      end

      context "when the metric is false" do
        let(:config) { { metrics: { :batch_size => false } } }

        it "returns false" do
          expect(metric_object.enabled?).to be_falsey
        end
      end

      context "when the metric is true" do
        let(:config) { { metrics: { :batch_size => true }} }

        it "returns true" do
          expect(metric_object.enabled?).to be_truthy
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
nexia_worker_roulette-0.2.9 spec/unit/queue_metric_tracker_spec.rb
nexia_worker_roulette-0.2.8 spec/unit/queue_metric_tracker_spec.rb
nexia_worker_roulette-0.2.7 spec/unit/queue_metric_tracker_spec.rb
nexia_worker_roulette-0.2.6 spec/unit/queue_metric_tracker_spec.rb
nexia_worker_roulette-0.2.5 spec/unit/queue_metric_tracker_spec.rb
nexia_worker_roulette-0.2.4 spec/unit/queue_metric_tracker_spec.rb
nexia_worker_roulette-0.2.3 spec/unit/queue_metric_tracker_spec.rb