Sha256: 693a8ebdb4d32d5ef2c0008cb78b03bfe7f9ca31449b1e334d1a830a03823c17

Contents?: true

Size: 1.92 KB

Versions: 28

Compression:

Stored size: 1.92 KB

Contents

require 'test_helper'

class TestFeatureFlagClient < Minitest::Test

  def test_pct
    client = Prefab::FeatureFlagClient.new(MockBaseClient.new)
    Prefab::FeatureFlagClient.send(:public, :is_on?)
    feature = "FlagName"
    flag = Prefab::FeatureFlag.new( pct: 0.5)

    assert_equal false,
                 client.is_on?(feature, "hashes high", [], flag)

    assert_equal true,
                 client.is_on?(feature, "hashes low", [], flag)
  end


  def test_off
    client = Prefab::FeatureFlagClient.new(MockBaseClient.new)
    Prefab::FeatureFlagClient.send(:public, :is_on?)
    feature = "FlagName"
    flag = Prefab::FeatureFlag.new(pct: 0)

    assert_equal false,
                 client.is_on?(feature, "hashes high", [], flag)

    assert_equal false,
                 client.is_on?(feature, "hashes low", [], flag)
  end


  def test_on
    client = Prefab::FeatureFlagClient.new(MockBaseClient.new)
    Prefab::FeatureFlagClient.send(:public, :is_on?)
    feature = "FlagName"
    flag = Prefab::FeatureFlag.new(pct: 1)

    assert_equal true,
                 client.is_on?(feature, "hashes high", [], flag)

    assert_equal true,
                 client.is_on?(feature, "hashes low", [], flag)
  end

  def test_whitelist
    client = Prefab::FeatureFlagClient.new(MockBaseClient.new)
    Prefab::FeatureFlagClient.send(:public, :is_on?)
    feature = "FlagName"
    flag = Prefab::FeatureFlag.new(pct: 0, whitelisted: ["beta", "user:1", "user:3"])

    assert_equal false,
                 client.is_on?(feature, "anything", [], flag)
    assert_equal true,
                 client.is_on?(feature, "anything", ["beta"], flag)
    assert_equal true,
                 client.is_on?(feature, "anything", ["alpha", "beta"], flag)
    assert_equal true,
                 client.is_on?(feature, "anything", ["alpha", "user:1"], flag)
    assert_equal false,
                 client.is_on?(feature, "anything", ["alpha", "user:2"], flag)

  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
prefab-cloud-ruby-0.13.1 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.6.0 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.5.1 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.5.0 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.4.0 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.3.0 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.2.0 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.1.1 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.1.0 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.1.0.alpha.1 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.0.28 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.0.27 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.0.26 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.0.25 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.0.24 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.0.23 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.0.22 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.0.21 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.0.20 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.0.19 test/test_feature_flag_client.rb