Sha256: bbd43a03726638af424aa8f5981ba940d16eb02522a3197d00ca9b7c66673c23

Contents?: true

Size: 1.66 KB

Versions: 10

Compression:

Stored size: 1.66 KB

Contents

require_relative 'helpers/test_helper'

class ConfigurationTest < Minitest::Test
  def setup
    Enumerations.restore_default_configuration
  end

  def teardown
    Enumerations.restore_default_configuration
  end

  def test_default_configuration
    assert_nil Enumerations.configuration.primary_key
    assert_nil Enumerations.configuration.foreign_key_suffix
  end

  def test_custom_configuration
    Enumerations.configure do |config|
      config.primary_key        = :id
      config.foreign_key_suffix = :id
    end

    assert_equal :id, Enumerations.configuration.primary_key
    assert_equal :id, Enumerations.configuration.foreign_key_suffix
  end

  def test_reflection_with_configured_foreign_key_suffix
    Enumerations.configure { |config| config.foreign_key_suffix = :id }

    reflection = Enumerations::Reflection.new(:status)

    assert_equal 'Status',   reflection.class_name
    assert_equal ::Status,   reflection.enumerator_class
    assert_equal :status_id, reflection.foreign_key
  end

  def test_required_primary_key_when_primary_key_configured
    Enumerations.configure { |config| config.primary_key = :id }

    assert_raises Enumerations::MissingPrimaryKeyError, 'Enumeration primary key is required' do
      Class.new(Enumerations::Base).value :draft, name: 'Draft'
    end
  end

  def test_duplicated_primary_key_when_primary_key_configured
    Enumerations.configure { |config| config.primary_key = :id }

    assert_raises Enumerations::DuplicatedPrimaryKeyError, 'Duplicate primary key 1' do
      Class.new(Enumerations::Base).values draft: { id: 1, name: 'Draft' },
                                           test:  { id: 1, name: 'Draft' }
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
enumerations-2.6.0 test/configuration_test.rb
enumerations-2.5.4 test/configuration_test.rb
enumerations-2.5.3 test/configuration_test.rb
enumerations-2.5.2 test/configuration_test.rb
enumerations-2.5.1 test/configuration_test.rb
enumerations-2.5.0 test/configuration_test.rb
enumerations-2.4.0 test/configuration_test.rb
enumerations-2.3.3 test/configuration_test.rb
enumerations-2.3.2 test/configuration_test.rb
enumerations-2.3.1 test/configuration_test.rb