{-# LANGUAGE OverloadedStrings #-} module Main where import Test.Hspec import Npm.Latest (extractVersion) import qualified Data.Text as T main :: IO () main = hspec $ do describe "extractVersion" $ do it "returns Just for a valid JSON object" $ do let json = T.unpack "{\"version\": \"1.0\"}" extractVersion (Just $ Right $ json) `shouldBe` Just "1.0" it "returns Nothing for a malformed JSON object" $ do let json = T.unpack "{\"description\": \"not what we expect\"}" extractVersion (Just $ Right $ json) `shouldBe` Nothing it "returns Nothing for a malformed JSON object" $ do let json = T.unpack "not even $ JSON" extractVersion (Just $ Right $ json) `shouldBe` Nothing