Implement FromField Bool
This commit is contained in:
@@ -42,6 +42,12 @@ newtype ADouble = ADouble
|
||||
|
||||
instance FromRow ADouble where
|
||||
|
||||
newtype ABool = ABool
|
||||
{ bool :: Bool
|
||||
} deriving (Eq, Generic, Show)
|
||||
|
||||
instance FromRow ABool where
|
||||
|
||||
shouldFetch :: (Eq a, FromRow a, Show a) => Connection -> ByteString -> [a] -> IO ()
|
||||
shouldFetch conn query expectedRows = do
|
||||
actualRows <- Opium.fetch_ conn query
|
||||
@@ -125,3 +131,16 @@ spec = do
|
||||
|
||||
Right [ADouble value1] <- Opium.fetch_ conn "SELECT '-inf'::double precision AS double"
|
||||
value1 `shouldSatisfy` (isInfinite /\ (< 0))
|
||||
|
||||
describe "FromField Bool" $ do
|
||||
it "Decodes boolean" $ \conn -> do
|
||||
shouldFetch conn "SELECT true AS bool" [ABool True]
|
||||
shouldFetch conn "SELECT 't'::boolean AS bool" [ABool True]
|
||||
shouldFetch conn "SELECT 'yes'::boolean AS bool" [ABool True]
|
||||
shouldFetch conn "SELECT 'on'::boolean AS bool" [ABool True]
|
||||
shouldFetch conn "SELECT 1::boolean AS bool" [ABool True]
|
||||
shouldFetch conn "SELECT false AS bool" [ABool False]
|
||||
shouldFetch conn "SELECT 'f'::boolean AS bool" [ABool False]
|
||||
shouldFetch conn "SELECT 'no'::boolean AS bool" [ABool False]
|
||||
shouldFetch conn "SELECT 'off'::boolean AS bool" [ABool False]
|
||||
shouldFetch conn "SELECT 0::boolean AS bool" [ABool False]
|
||||
|
||||
Reference in New Issue
Block a user