22{-# LANGUAGE OverloadedStrings #-}
33{-# LANGUAGE TemplateHaskell #-}
44{-# LANGUAGE TypeFamilies #-}
5+ {-# LANGUAGE DeriveGeneric #-}
56
67-- Legend:
78-- API for reading and sending messages.
@@ -25,7 +26,7 @@ import Prelude hiding (getContents)
2526import Test.Hspec (Spec , describe , it , shouldBe )
2627
2728concat <$> mapM (bindFunction bindOptions) [
28- " function send_message(p_receiver varchar, p_contents varchar) returns bigint"
29+ " function send_message(p_receiver varchar, p_contents varchar default null ) returns bigint"
2930 , " function get_new_messages(p_receiver varchar) returns table (message_id bigint, sender varchar, contents varchar)"
3031 , " function mark_as_read(p_receiver varchar, p_message_id bigint) returns void"
3132 ]
@@ -43,9 +44,9 @@ specMessages conn = describe "Messages example" $ it "works" $ mapM_ runTests [
4344 runTests fn = do
4445 include conn fn
4546
46- msg1 <- sqlSendMessage conn " mr_foo" " hello!"
47- msg2 <- sqlSendMessage conn " mr_bar" " hello!"
48- msg3 <- sqlSendMessage conn " mr_bar" " hello again!"
47+ msg1 <- sqlSendMessage conn " mr_foo" ( Just " hello!" )
48+ msg2 <- sqlSendMessage conn " mr_bar" ( Just " hello!" )
49+ msg3 <- sqlSendMessage conn " mr_bar" ( Just " hello again!" )
4950
5051 sqlGetNewMessages conn " mr_foo" >>= shouldBe [msg1] . map getId
5152 sqlGetNewMessages conn " mr_bar" >>= shouldBe [msg2, msg3] . map getId
@@ -56,3 +57,5 @@ specMessages conn = describe "Messages example" $ it "works" $ mapM_ runTests [
5657
5758 sqlMarkAsRead conn " mr_foo" msg1
5859 sqlMarkAsRead conn " mr_bar" msg3
60+
61+ sqlSendMessage conn " mr_foo" Nothing
0 commit comments