@@ -81,6 +81,7 @@ import Test.Tasty.Hedgehog ( testProperty )
8181
8282-- text
8383import Data.Text ( Text , pack , unpack )
84+ import qualified Data.Text as T
8485import qualified Data.Text.Lazy
8586import Data.Text.Encoding ( decodeUtf8 )
8687
@@ -430,14 +431,18 @@ instance Rel8.DBComposite Composite where
430431 compositeTypeName = " composite"
431432 compositeFields = Rel8. namesFromLabels
432433
434+ -- | Postgres doesn't support the NULL character (not to be confused with a NULL value) inside strings.
435+ removeNull :: Text -> Text
436+ removeNull = T. filter (/= '\ 0 ')
437+
433438
434439testDBType :: IO TmpPostgres. DB -> TestTree
435440testDBType getTestDatabase = testGroup " DBType instances"
436441 [ dbTypeTest " Bool" Gen. bool
437442 , dbTypeTest " ByteString" $ Gen. bytes (Range. linear 0 128 )
438443 , dbTypeTest " CalendarDiffTime" genCalendarDiffTime
439- , dbTypeTest " CI Lazy Text" $ mk . Data.Text.Lazy. fromStrict <$> Gen. text (Range. linear 0 10 ) Gen. unicode
440- , dbTypeTest " CI Text" $ mk <$> Gen. text (Range. linear 0 10 ) Gen. unicode
444+ , dbTypeTest " CI Lazy Text" $ mk . Data.Text.Lazy. fromStrict . removeNull <$> Gen. text (Range. linear 0 10 ) Gen. unicode
445+ , dbTypeTest " CI Text" $ mk . removeNull <$> Gen. text (Range. linear 0 10 ) Gen. unicode
441446 , dbTypeTest " Composite" genComposite
442447 , dbTypeTest " Day" genDay
443448 , dbTypeTest " Double" $ (/ 10 ) . fromIntegral @ Int @ Double <$> Gen. integral (Range. linear (- 100 ) 100 )
@@ -446,10 +451,10 @@ testDBType getTestDatabase = testGroup "DBType instances"
446451 , dbTypeTest " Int32" $ Gen. integral @ _ @ Int32 Range. linearBounded
447452 , dbTypeTest " Int64" $ Gen. integral @ _ @ Int64 Range. linearBounded
448453 , dbTypeTest " Lazy ByteString" $ Data.ByteString.Lazy. fromStrict <$> Gen. bytes (Range. linear 0 128 )
449- , dbTypeTest " Lazy Text" $ Data.Text.Lazy. fromStrict <$> Gen. text (Range. linear 0 10 ) Gen. unicode
454+ , dbTypeTest " Lazy Text" $ Data.Text.Lazy. fromStrict . removeNull <$> Gen. text (Range. linear 0 10 ) Gen. unicode
450455 , dbTypeTest " LocalTime" genLocalTime
451456 , dbTypeTest " Scientific" $ (/ 10 ) . fromIntegral @ Int @ Scientific <$> Gen. integral (Range. linear (- 100 ) 100 )
452- , dbTypeTest " Text" $ Gen. text (Range. linear 0 10 ) Gen. unicode
457+ , dbTypeTest " Text" $ removeNull <$> Gen. text (Range. linear 0 10 ) Gen. unicode
453458 , dbTypeTest " TimeOfDay" genTimeOfDay
454459 , dbTypeTest " UTCTime" $ UTCTime <$> genDay <*> genDiffTime
455460 , dbTypeTest " UUID" $ Data.UUID. fromWords <$> genWord32 <*> genWord32 <*> genWord32 <*> genWord32
0 commit comments