Sha256: b2b32dbfbf37091a3dfd9d275adb0385b2c1cb4510a515e2c865b408d33d7a47

Contents?: true

Size: 1.99 KB

Versions: 11

Compression:

Stored size: 1.99 KB

Contents

require 'helper'
require 'flipper/adapters/memory'
require 'flipper/instrumentation/metriks'

describe Flipper::Instrumentation::MetriksSubscriber do
  let(:adapter) { Flipper::Adapters::Memory.new }
  let(:flipper) {
    Flipper.new(adapter, :instrumenter => ActiveSupport::Notifications)
  }

  let(:user) { user = Struct.new(:flipper_id).new('1') }

  before do
    Metriks::Registry.default.clear
  end

  context "for enabled feature" do
    it "updates feature metrics when calls happen" do
      flipper[:stats].enable(user)
      Metriks.timer("flipper.feature_operation.enable").count.should be(1)

      flipper[:stats].enabled?(user)
      Metriks.timer("flipper.feature_operation.enabled").count.should be(1)
      Metriks.meter("flipper.feature.stats.enabled").count.should be(1)
    end
  end

  context "for disabled feature" do
    it "updates feature metrics when calls happen" do
      flipper[:stats].disable(user)
      Metriks.timer("flipper.feature_operation.disable").count.should be(1)

      flipper[:stats].enabled?(user)
      Metriks.timer("flipper.feature_operation.enabled").count.should be(1)
      Metriks.meter("flipper.feature.stats.disabled").count.should be(1)
    end
  end

  it "updates adapter metrics when calls happen" do
    flipper[:stats].enable(user)
    Metriks.timer("flipper.adapter.memory.enable").count.should be(1)

    flipper[:stats].enabled?(user)
    Metriks.timer("flipper.adapter.memory.get").count.should be(1)

    flipper[:stats].disable(user)
    Metriks.timer("flipper.adapter.memory.disable").count.should be(1)
  end

  it "updates gate metrics when calls happen" do
    flipper[:stats].enable(user)
    flipper[:stats].enabled?(user)

    Metriks.timer("flipper.gate_operation.boolean.open").count.should be(1)
    Metriks.timer("flipper.feature.stats.gate_operation.boolean.open").count.should be(1)
    Metriks.meter("flipper.feature.stats.gate.actor.open").count.should be(1)
    Metriks.meter("flipper.feature.stats.gate.boolean.closed").count.should be(1)
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
flipper-0.7.1 spec/flipper/instrumentation/metriks_subscriber_spec.rb
flipper-0.7.0 spec/flipper/instrumentation/metriks_subscriber_spec.rb
flipper-0.7.0.beta6 spec/flipper/instrumentation/metriks_subscriber_spec.rb
flipper-0.7.0.beta5 spec/flipper/instrumentation/metriks_subscriber_spec.rb
flipper-0.7.0.beta4 spec/flipper/instrumentation/metriks_subscriber_spec.rb
flipper-0.7.0.beta3 spec/flipper/instrumentation/metriks_subscriber_spec.rb
flipper-0.7.0.beta2 spec/flipper/instrumentation/metriks_subscriber_spec.rb
flipper-0.7.0.beta1 spec/flipper/instrumentation/metriks_subscriber_spec.rb
flipper-0.6.3 spec/flipper/instrumentation/metriks_subscriber_spec.rb
flipper-0.6.2 spec/flipper/instrumentation/metriks_subscriber_spec.rb
flipper-0.6.1 spec/flipper/instrumentation/metriks_subscriber_spec.rb