Sha256: 2362181b190804ee2cf496d393d3a3dca0beaf58b8034c89ba7ad7d7d988080a

Contents?: true

Size: 1.74 KB

Versions: 44

Compression:

Stored size: 1.74 KB

Contents

# frozen_string_literal: true

require 'test_helper'

class TestFeatureFlagClient < Minitest::Test
  DEFAULT = 'default'

  def test_feature_is_on
    ff_client = new_client

    assert_equal false, ff_client.feature_is_on?('something-that-does-not-exist')
    assert_equal false, ff_client.feature_is_on?('disabled_flag')
    assert_equal true, ff_client.feature_is_on?('enabled_flag')
    assert_equal false, ff_client.feature_is_on?('flag_with_a_value')
  end

  def test_feature_is_on_for
    ff_client = new_client

    assert_equal false, ff_client.feature_is_on_for?('something-that-does-not-exist', {})
    assert_equal false, ff_client.feature_is_on_for?('user_key_match', {})
    assert_equal false, ff_client.feature_is_on_for?('user_key_match', { user: { key: 'not-included' } })
    assert_equal true, ff_client.feature_is_on_for?('user_key_match', { user: { key:  'abc123' } })
    assert_equal true, ff_client.feature_is_on_for?('user_key_match', { user: { key: 'xyz987' } })
  end

  def test_get
    ff_client = new_client

    # No default
    assert_equal false, ff_client.get('something-that-does-not-exist', {})
    assert_equal false, ff_client.get('disabled_flag', {})
    assert_equal true, ff_client.get('enabled_flag', {})
    assert_equal 'all-features', ff_client.get('flag_with_a_value', {})

    # with defaults
    assert_equal DEFAULT, ff_client.get('something-that-does-not-exist', {}, default: DEFAULT)
    assert_equal false, ff_client.get('disabled_flag', {}, default: DEFAULT)
    assert_equal true, ff_client.get('enabled_flag', {}, default: DEFAULT)
    assert_equal 'all-features', ff_client.get('flag_with_a_value', {}, default: DEFAULT)
  end

  private

  def new_client(overrides = {})
    super(overrides).feature_flag_client
  end
end

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
prefab-cloud-ruby-1.8.8 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.8.8.pre.1 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.8.7 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.8.6 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.8.5 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.8.4 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.8.3 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.8.2 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.8.1 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.8.0 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.7.2 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.7.1 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.7.0 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.6.2 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.6.1 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.6.0 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.5.1 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.6.0.pre2 test/test_feature_flag_client.rb
prefab-cloud-ruby-1.6.0.pre1 test/test_feature_flag_client.rb
prefab-cloud-ruby-0 test/test_feature_flag_client.rb