Sha256: a3fd32412ca98d505b4b12a35c808071b8bf18479d75c4318904cc8bb858387b

Contents?: true

Size: 1.84 KB

Versions: 11

Compression:

Stored size: 1.84 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', 'irrelevant')
    assert_equal false, ff_client.feature_is_on_for?('in_lookup_key', 'not-included')
    assert_equal true, ff_client.feature_is_on_for?('in_lookup_key', 'abc123')
    assert_equal true, ff_client.feature_is_on_for?('in_lookup_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 = {})
    options = Prefab::Options.new(**{
      prefab_config_override_dir: 'none',
      prefab_config_classpath_dir: 'test',
      prefab_envs: ['unit_tests'],
      prefab_datasources: Prefab::Options::DATASOURCES::LOCAL_ONLY
    }.merge(overrides))

    Prefab::Client.new(options).feature_flag_client
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
prefab-cloud-ruby-0.23.8 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.23.7 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.23.6 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.23.5 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.23.4 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.23.3 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.23.2 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.23.1 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.23.0 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.22.0 test/test_feature_flag_client.rb
prefab-cloud-ruby-0.21.0 test/test_feature_flag_client.rb