import Test.Hspec
import Helpers
import qualified DT.Parser
import qualified ErbSpec
import qualified EvalSpec
import qualified ExprSpec
import qualified Function.AssertPrivateSpec
import qualified Function.DeleteAtSpec
import qualified Function.EachSpec
import qualified Function.JoinKeysToValuesSpec
import qualified Function.LookupSpec
import qualified Function.MergeSpec
import qualified Function.ShellquoteSpec
import qualified Function.SizeSpec
import qualified Function.SprintfSpec
import qualified Function.SuffixSpec
import qualified Function.PrefixSpec
import qualified Interpreter.CollectorSpec
import qualified Interpreter.IfSpec
import qualified InterpreterSpec
import qualified LexerSpec
import qualified PuppetdbSpec
import qualified HieraSpec
main :: IO ()
main = hspec spec
spec :: Spec
spec = do
describe "Data types" $ do
describe "Parser" DT.Parser.spec
EvalSpec.spec
ExprSpec.spec
ErbSpec.spec
LexerSpec.spec
describe "Interpreter" $ do
describe "Collector" InterpreterSpec.collectorSpec
describe "Class include" InterpreterSpec.classIncludeSpec
describe "Collector (puppet tests)" Interpreter.CollectorSpec.spec
describe "If" Interpreter.IfSpec.spec
describe "Puppet functions" $ do
describe "The shellquote function" Function.ShellquoteSpec.spec
describe "The sprintf function" Function.SprintfSpec.spec
describe "The each function" Function.EachSpec.spec
describe "The lookup function" Function.LookupSpec.spec
describe "The suffix function" Function.SuffixSpec.spec
describe "The prefix function" Function.PrefixSpec.spec
describe "stdlib functions" $ do
describe "The assert_private function" Function.AssertPrivateSpec.spec
describe "The join_keys_to_values function" Function.JoinKeysToValuesSpec.spec
describe "The merge function" Function.MergeSpec.spec
describe "The size function" Function.SizeSpec.spec
describe "The delete_at function" Function.DeleteAtSpec.spec
PuppetdbSpec.spec
HieraSpec.spec