packages feed

chromatin-0.1.0.0: test/u/BuildSpec.hs

{-# OPTIONS_GHC -F -pgmF htfpp #-}

module BuildSpec(
  htf_thisModulesTests
) where

import Control.Monad.IO.Class (liftIO)
import Data.Default.Class (def)
import Test.Framework
import UnliftIO.Directory (getCurrentDirectory)
import Ribosome.Test.Embed (TestConfig(tcTimeout))
import Chromatin.Data.Chromatin (Chromatin)
import Chromatin.Data.Rplugin (Rplugin(Rplugin))
import Chromatin.Data.RpluginName (RpluginName(RpluginName))
import Chromatin.Data.RpluginSource (RpluginSource(Stack, Pypi), PypiDepspec(..))
import Chromatin.Test.Unit (specWithDef, specConfig)
import Chromatin.Test.Config (defaultTestConfig)
import Chromatin.Rebuild.Build (installRplugin)
import qualified Chromatin.Rebuild.Build as InstallResult (InstallResult(Success))
import Config (vars)

stackSpec :: Chromatin ()
stackSpec = do
  cwd <- getCurrentDirectory
  let name = RpluginName "chromatin"
  let source = Stack cwd
  result <- installRplugin name source
  liftIO $ assertEqual (InstallResult.Success (Rplugin name source)) result

test_stack :: IO ()
test_stack =
  vars >>= specWithDef stackSpec

pypiSpec :: Chromatin ()
pypiSpec = do
  let name = RpluginName "myo"
  let source = Pypi (PypiDepspec "myo~=1.0.0a")
  result <- installRplugin name source
  liftIO $ assertEqual (InstallResult.Success (Rplugin name source)) result

testConfig :: TestConfig
testConfig = defaultTestConfig { tcTimeout = 30 }

test_pypi :: IO ()
test_pypi =
  specConfig testConfig def pypiSpec