-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Hspec support for the Tasty test framework.
--   
--   Hspec support for the Tasty test framework.
@package tasty-hspec
@version 0.1

module Test.Tasty.Hspec

-- | Turn an hspec <tt>Spec</tt> into a tasty <tt>TestTree</tt>.
--   
--   <pre>
--   module AnimalsSpec (tests) where
--   
--   import Test.Tasty.Hspec
--   
--   tests :: TestTree
--   tests = testGroup "animals"
--       [ testCase "mammals" mammalsSpec
--       , testCase "birds"   birdsSpec
--       ]
--   
--   mammalsSpec :: Spec
--   mammalsSpec = do
--       describe "cow" $ do
--           it "moos" $
--               speak cow `shouldBe` "moo"
--   
--           it "eats grass" $
--               hungryFor cow `shouldBe` "grass"
--   
--   birdsSpec :: Spec
--   birdsSpec = do
--       describe "ostrich" $ do
--           it "sticks its head in sand" $
--               fmap (`shouldBe` InSand) getHeadState
--   </pre>
testCase :: TestName -> Spec -> TestTree

-- | The name of a test or a group of tests
type TestName = String

-- | The main data structure defining a test suite.
--   
--   It consists of individual test cases and properties, organized in
--   named groups which form a tree-like hierarchy.
--   
--   There is no generic way to create a test case. Instead, every test
--   provider (tasty-hunit, tasty-smallcheck etc.) provides a function to
--   turn a test case into a <a>TestTree</a>.
--   
--   Groups can be created using <a>testGroup</a>.
data TestTree :: *
instance Typeable MySpec
instance IsTest MySpec
