Sha256: f55ea8bf6a44d18518f35f6d99b1959b5ec394ce01edc1d510459a9b8be1207d

Contents?: true

Size: 1.59 KB

Versions: 1

Compression:

Stored size: 1.59 KB

Contents

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

RSpec.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)
      expect(Metriks.timer("flipper.feature_operation.enable").count).to be(1)

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

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

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

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

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

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
flipper-0.8.0 spec/flipper/instrumentation/metriks_subscriber_spec.rb