Fix serious DBD::SQLite numeric datatype mismatch regression
[dbsrgits/DBIx-Class.git] / t / 752sqlite.t
index 51541ac..31aacf6 100644 (file)
@@ -3,6 +3,7 @@ use warnings;
 
 use Test::More;
 use Test::Exception;
+use Test::Warn;
 use lib qw(t/lib);
 use DBICTest;
 
@@ -26,6 +27,7 @@ $schema->txn_do(sub {
   } qr/rolling back inner transaction/, 'inner transaction rollback executed';
   $ars->create({ name => 'in_outer_transaction2' });
 });
+
 ok($ars->search({ name => 'in_outer_transaction' })->first,
   'commit from outer transaction');
 ok($ars->search({ name => 'in_outer_transaction2' })->first,
@@ -36,6 +38,15 @@ is $ars->search({ name => 'in_inner_transaction_rolling_back' })->first,
   undef,
   'rollback from inner transaction';
 
+# make sure the side-effects of RT#67581 do not result in data loss
+my $row;
+warnings_exist { $row = $ars->create ({ name => 'alpha rank', rank => 'abc' }) }
+  [qr/Non-numeric value supplied for column 'rank' despite the numeric datatype/],
+  'proper warning on string insertion into an numeric column'
+;
+$row->discard_changes;
+is ($row->rank, 'abc', 'proper rank inserted into database');
+
 done_testing;
 
 # vim:sts=2 sw=2: