@@ -74,6 +74,36 @@ def test_change_column_nullability
7474 assert ( !title_column . null )
7575 end
7676
77+ def test_change_column_whithout_default_option_should_drop_existing_default
78+
79+ Entry . reset_column_information
80+ status_column = Entry . columns . find { |c | c . name == 'status' }
81+ assert_equal :string , status_column . type
82+ assert_equal 'unknown' , status_column . default
83+
84+ Entry . connection . change_column :entries , :status , :text
85+
86+ Entry . reset_column_information
87+ status_column = Entry . columns . find { |c | c . name == 'status' }
88+ assert_equal :text , status_column . type
89+ assert !status_column . default
90+ end
91+
92+ def test_change_column_whith_default_option_should_set_new_default
93+
94+ Entry . reset_column_information
95+ status_column = Entry . columns . find { |c | c . name == 'status' }
96+ assert_equal :string , status_column . type
97+ assert_equal 'unknown' , status_column . default
98+
99+ Entry . connection . change_column :entries , :status , :text , :default => 'new'
100+
101+ Entry . reset_column_information
102+ status_column = Entry . columns . find { |c | c . name == 'status' }
103+ assert_equal :text , status_column . type
104+ assert_equal 'new' , status_column . default
105+ end
106+
77107 [ nil , "NULL" , "null" , "(null)" , "(NULL)" ] . each_with_index do |v , i |
78108 define_method "test_null_#{ i } " do
79109 entry = Entry . create! ( :title => v , :content => v )
0 commit comments