cachix-api-1.0.0: test/DeploySpec.hs
module DeploySpec where
import Cachix.Types.Deploy
import Data.Aeson (eitherDecode, encode)
import qualified Data.ByteString.Lazy as BSL
import Data.HashMap.Strict
import Protolude
import Test.Hspec
import qualified Prelude
spec :: Spec
spec =
describe "Deploy" $ do
it "parses a simple deploy" testSimple
it "parses rollbackScript" testRollback
test :: BSL.ByteString -> Expectation
test input = (encode <$> (eitherDecode input :: Either Prelude.String Deploy)) `shouldBe` Right input
testSimple :: Expectation
testSimple = do
let input = "{\"agents\":{\"myagent\":\"/nix/store/blabla\"}}"
test input
testRollback :: Expectation
testRollback = do
let input = "{\"agents\":{\"myagent\":\"/nix/store/blabla\"},\"rollbackScript\":{\"x86_64-linux\":\"/nix/store/rollback.sh\"}}"
test input