[FIX] so well typed.
[gargantext.git] / src-test / Parsers / Date.hs
index ab38c3a136b89776b1f526daea7b0f943e5f198d..8bb97741659c394fe85060c08fe1f64285b8f363 100644 (file)
@@ -1,20 +1,37 @@
+{-|
+Module      : Parsers.Date
+Description : 
+Copyright   : (c) CNRS, 2017-Present
+License     : AGPL + CECILL v3
+Maintainer  : team@gargantext.org
+Stability   : experimental
+Portability : POSIX
+
+Here is a longer description of this module, containing some
+commentary with @some markup@.
+-}
+
 {-# LANGUAGE NoImplicitPrelude #-}
 
 module Parsers.Date where
 
-import Gargantext.Prelude
 
 import Test.Hspec
 import Test.QuickCheck
-import Parsers.Types
 
+import Control.Applicative ((<*>))
 import Data.Either (Either(..))
 import Data.Time (ZonedTime(..))
 import Data.Text (pack, Text)
 
 import Text.Parsec.Error (ParseError)
 import Duckling.Time.Types (toRFC3339)
-import Gargantext.Parsers.Date (fromRFC3339)
+
+-----------------------------------------------------------
+import Gargantext.Prelude
+import Gargantext.Text.Parsers.Date (fromRFC3339)
+import Parsers.Types
+-----------------------------------------------------------
 
 fromRFC3339Inv ::  Either ParseError ZonedTime -> Text
 fromRFC3339Inv (Right z) = toRFC3339 z
@@ -24,4 +41,9 @@ testFromRFC3339 :: IO ()
 testFromRFC3339 = hspec $ do
   describe "Test fromRFC3339: " $ do
     it "is the inverse of Duckling's toRFC3339" $ property $
-      \x -> (fromRFC3339 . fromRFC3339Inv) x == (x :: Either ParseError ZonedTime)
+      ((==) <*> (fromRFC3339 . fromRFC3339Inv)) . Right . looseZonedTimePrecision
+
+      -- \x -> uncurry (==) $ (,) <*> (fromRFC3339 . fromRFC3339Inv) $ Right $ looseZonedTimePrecision x
+
+      -- \x -> let e = Right x :: Either ParseError ZonedTime
+      --       in fmap looseZonedTimePrecision e == (fromRFC3339 . fromRFC3339Inv ) (fmap looseZonedTimePrecision e)