Sha256: 031d30a1c509e4cedb61a938659e6a3282c537cfc4b90c46c400644b6c4ee0d3

Contents?: true

Size: 1.34 KB

Versions: 17

Compression:

Stored size: 1.34 KB

Contents

require 'helper'

RSpec.describe Flipper::UI::Decorators::Feature do
  let(:source)  { {} }
  let(:adapter) { Flipper::Adapters::Memory.new(source) }
  let(:flipper) { build_flipper }
  let(:feature) { flipper[:some_awesome_feature] }

  subject do
    described_class.new(feature)
  end

  describe '#initialize' do
    it 'sets the feature' do
      expect(subject.feature).to be(feature)
    end
  end

  describe '#pretty_name' do
    it 'capitalizes each word separated by underscores' do
      expect(subject.pretty_name).to eq('Some Awesome Feature')
    end
  end

  describe '#<=>' do
    let(:on) do
      flipper.enable(:on_a)
      described_class.new(flipper[:on_a])
    end

    let(:on_b) do
      flipper.enable(:on_b)
      described_class.new(flipper[:on_b])
    end

    let(:conditional) do
      flipper.enable_percentage_of_time :conditional_a, 5
      described_class.new(flipper[:conditional_a])
    end

    let(:off) do
      described_class.new(flipper[:off_a])
    end

    it 'sorts :on before :conditional' do
      expect((on <=> conditional)).to be(-1)
    end

    it 'sorts :on before :off' do
      expect((on <=> off)).to be(-1)
    end

    it 'sorts :conditional before :off' do
      expect((conditional <=> off)).to be(-1)
    end

    it 'sorts on key for identical states' do
      expect((on <=> on_b)).to be(-1)
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
flipper-ui-0.22.2 spec/flipper/ui/decorators/feature_spec.rb
flipper-ui-0.22.1 spec/flipper/ui/decorators/feature_spec.rb
flipper-ui-0.22.0 spec/flipper/ui/decorators/feature_spec.rb
flipper-ui-0.21.0 spec/flipper/ui/decorators/feature_spec.rb
flipper-ui-0.21.0.rc2 spec/flipper/ui/decorators/feature_spec.rb
flipper-ui-0.21.0.rc1 spec/flipper/ui/decorators/feature_spec.rb
flipper-ui-0.20.4 spec/flipper/ui/decorators/feature_spec.rb
flipper-ui-0.20.3 spec/flipper/ui/decorators/feature_spec.rb
flipper-ui-0.20.2 spec/flipper/ui/decorators/feature_spec.rb
flipper-ui-0.20.1 spec/flipper/ui/decorators/feature_spec.rb
flipper-ui-0.20.0 spec/flipper/ui/decorators/feature_spec.rb
flipper-ui-0.20.0.beta3 spec/flipper/ui/decorators/feature_spec.rb
flipper-ui-0.20.0.beta2 spec/flipper/ui/decorators/feature_spec.rb
flipper-ui-0.20.0.beta1 spec/flipper/ui/decorators/feature_spec.rb
flipper-ui-0.19.1 spec/flipper/ui/decorators/feature_spec.rb
flipper-ui-0.19.0 spec/flipper/ui/decorators/feature_spec.rb
flipper-ui-0.18.0 spec/flipper/ui/decorators/feature_spec.rb