Fix SQLA condition normalizer sometimes stripping -value ops
[dbsrgits/DBIx-Class.git] / xt / extra / internals / sqla_condition_parsers.t
index 5c94edc..14a2c31 100644 (file)
@@ -273,14 +273,17 @@ my @tests = (
       charfield => { -ident => 'foo' },
       name => { '=' => { -value => undef } },
       rank => { '=' => { -ident => 'bar' } },
+      arrayfield => { '>' => { -value => [3,1] } },
     ] },
-    sql => 'WHERE artistid = ? AND charfield = foo AND name IS NULL AND rank = bar',
     normalized => {
       artistid => { -value => [1] },
       name => undef,
       charfield => { '=', { -ident => 'foo' } },
       rank => { '=' => { -ident => 'bar' } },
+      arrayfield => { '>' => { -value => [3,1] } },
     },
+    sql            => 'WHERE artistid = ? AND charfield = foo AND name IS NULL AND rank = bar AND arrayfield > ?',
+    normalized_sql => 'WHERE arrayfield > ? AND artistid = ? AND charfield = foo AND name IS NULL AND rank = bar',
     equality_extract => {
       artistid => [1],
       charfield => { -ident => 'foo' },
@@ -682,4 +685,10 @@ for my $t (@tests) {
   }
 }
 
+# test separately
+is_deeply(
+  normalize_sqla_condition( UNRESOLVABLE_CONDITION ),
+  { -and => [ UNRESOLVABLE_CONDITION ] },
+);
+
 done_testing;