42 lines
1.1 KiB
Haskell
Raw Normal View History

module Main where
import MiniReleaseRequest.Request
( Environment (Production, Staging)
, ReleaseRequest (ReleaseRequest)
, Strategy (Canary, Rolling)
, buildReleaseRequest
, renderReleaseRequest
)
import System.Exit (die)
main :: IO ()
main =
case
( buildReleaseRequest
[ "service=api"
, "env=production"
, "replicas=3"
, "strategy=canary"
, "canary=10"
]
, buildReleaseRequest
[ "service=worker"
, "env=staging"
, "replicas=2"
, "strategy=rolling"
, "owner=ops"
]
, buildReleaseRequest
[ "service=cache"
, "env=production"
, "replicas=2"
, "strategy=canary"
]
) of
( Right (ReleaseRequest "api" Production 3 (Canary 10) Nothing)
, Right rollingRequest@(ReleaseRequest "worker" Staging 2 Rolling (Just "ops"))
, Left _
) | renderReleaseRequest rollingRequest == "service worker, env staging, replicas 2, strategy rolling, owner ops" ->
putStrLn "test passed"
_ -> die "unexpected release request result"