Sha256: 3af4ca93fff55fff2fe76ba2798633d173a5969ba2bf8df1e7f92e14f0ad095d

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 KB

Contents

require 'minitest/autorun'
require 'flippeur'
require 'flippeur/rails_helpers'


class Model
  include Flippeur::ModelHelpers
end


class ModelHelpersTest < MiniTest::Unit::TestCase

  def setup
    @model = Model.new
  end

  def test_unknown_feature_raises_exception
    Flippeur.setup { }
    assert_raises Flippeur::UnknownFeature do
      @model.feature? :foo, Object.new
    end
  end

  def test_available_feature_as_boolean
    Flippeur.setup do
      feature(:foo) { |user| true }
    end
    assert @model.feature?(:foo, Object.new)
  end

  def test_available_feature_with_block
    Flippeur.setup do
      feature(:foo) { |user| true }
    end
    block_called = false
    @model.feature?(:foo, Object.new) do
      block_called = true
    end
    assert block_called
  end

  def test_unavailable_feature_as_boolean
    Flippeur.setup do
      feature(:foo) { |user| false }
    end
    refute @model.feature?(:foo, Object.new)
  end

  def test_unavailable_feature_with_block
    Flippeur.setup do
      feature(:foo) { |user| false }
    end
    block_called = false
    @model.feature?(:foo, Object.new) do
      block_called = true
    end
    refute block_called
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
flippeur-1.0.0 test/model_helpers_test.rb