1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
# frozen_string_literal: true
require_relative 'test_helper'
require 'stringio'
class MachineWithDifferentColumnDefaultTest < BaseTestCase
def setup
@original_stderr = $stderr
$stderr = StringIO.new
@model = new_model do
connection.add_column table_name, :status, :string, default: 'idling'
end
@machine = StateMachines::Machine.new(@model, :status, initial: :parked)
@record = @model.new
end
def test_should_use_machine_default
assert_equal 'parked', @record.status
end
def test_should_generate_a_warning
assert_match(
/Both Foo and its :status machine have defined a different default for "status". Use only one or the other for defining defaults to avoid unexpected behaviors\./, $stderr.string
)
end
def teardown
$stderr = @original_stderr
super
end
end
|