packages feed

registry-0.2.0.0: test/Test/Tutorial/Exercise3.hs

{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE PartialTypeSignatures #-}
{-# OPTIONS_GHC -fno-warn-partial-type-signatures #-}

module Test.Tutorial.Exercise3 where

import           Data.Registry
import           Protolude
import           Test.Tutorial.Application
import           Test.Tutorial.Exercise2

silentLogger :: Logger IO
silentLogger = Logger (const (pure ())) (const (pure ()))

silentRegistry = fun silentLogger <: registry

newSilentApp :: App
newSilentApp = make @App silentRegistry

newMisconfiguredApp :: App
newMisconfiguredApp = make @App (val (SecretReaderConfig "missing") <: registry)

newMisconfiguredSilentApp :: App
newMisconfiguredSilentApp = make @App (val (SecretReaderConfig "missing") <: silentRegistry)

newMisconfiguredRngSilentApp :: App
newMisconfiguredRngSilentApp = make @App $
  specialize @(Rng IO) silentLogger $
  val (SecretReaderConfig "missing") <: registry