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"