packages feed

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