36 lines
910 B
Haskell
Raw Permalink Normal View History

{-# LANGUAGE OverloadedStrings #-}
module Main where
import MiniManifest.Json
( DeploymentManifest (..)
, Environment (Production)
, RolloutStrategy (Canary)
, decodeManifest
, encodeManifest
, renderManifest
)
import System.Exit (die)
sampleManifest :: DeploymentManifest
sampleManifest =
DeploymentManifest
{ manifestService = "api"
, manifestEnvironment = Production
, manifestReplicas = 3
, manifestOwners = ["platform", "security"]
, manifestStrategy = Canary 10
}
main :: IO ()
main =
case
( decodeManifest (encodeManifest sampleManifest)
, decodeManifest "{\"service\":\"api\"}"
) of
( Right decodedManifest
, Left _
) | renderManifest decodedManifest == "service api, env production, replicas 3, owners platform/security, strategy canary 10%" ->
putStrLn "test passed"
_ -> die "unexpected JSON round-trip result"