Sha256: 8f747768f6d2eefd2097db509c546e01ff9f02a2a9c812a74c1e3566b9a00d2e

Contents?: true

Size: 982 Bytes

Versions: 2

Compression:

Stored size: 982 Bytes

Contents

require 'test_helper'

require 'active_record_doctor/tasks/incorrect_boolean_presence_validation'

class ActiveRecordDoctor::Tasks::IncorrectBooleanPresenceValidationTest < ActiveSupport::TestCase
  def test_presence_true_is_reported_on_boolean_only
    Temping.create(:users, temporary: false) do
      # email is a non-boolean column whose presence CAN be validated in the
      # usual way. We include it in the test model to ensure the task reports
      # only boolean columns.
      validates :email, :active, presence: true

      with_columns do |t|
        t.string :email, null: false
        t.boolean :active, null: false
      end
    end

    assert_equal({ 'User' => ['active'] }, run_task)
  end

  def test_inclusion_is_not_reported
    Temping.create(:users, temporary: false) do
      validates :active, inclusion: { in: [true, false] }

      with_columns do |t|
        t.boolean :active, null: false
      end
    end

    assert_equal({}, run_task)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active_record_doctor-1.7.1 test/active_record_doctor/tasks/incorrect_boolean_presence_validation_test.rb
active_record_doctor-1.7.0 test/active_record_doctor/tasks/incorrect_boolean_presence_validation_test.rb