diff options
Diffstat (limited to 'tests/Helper.hs')
-rw-r--r-- | tests/Helper.hs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/Helper.hs b/tests/Helper.hs new file mode 100644 index 0000000..5979ae2 --- /dev/null +++ b/tests/Helper.hs @@ -0,0 +1,34 @@ +module Helper + ( forceGetConfig + , getConfig + ) where + + +import System.IO (hClose) +import System.IO.Temp (withSystemTempFile) +import System.Directory (removeFile) + +import Data.Text (Text) +import qualified Data.Text.IO as T +import Data.Maybe (fromJust) + +import Data.ConfigManager +import Data.ConfigManager.Config + +forceGetConfig :: Text -> IO Config +forceGetConfig = (fmap fromJust) . getConfig + +getConfig :: Text -> IO (Maybe Config) +getConfig input = + withSystemTempFile "config-manager-test" (\filePath handle -> do + hClose handle + T.writeFile filePath input + config <- readConfig filePath + removeFile filePath + putStrLn . show $ config + return $ eitherToMaybe config + ) + +eitherToMaybe :: Either a b -> Maybe b +eitherToMaybe (Left _) = Nothing +eitherToMaybe (Right x) = Just x |