File: ResultSpec.hs

package info (click to toggle)
haskell-hspec-core 2.11.9-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 656 kB
  • sloc: haskell: 8,945; makefile: 5
file content (43 lines) | stat: -rw-r--r-- 1,388 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{-# LANGUAGE RecordWildCards #-}
module Test.Hspec.Core.Runner.ResultSpec (spec) where

import           Prelude ()
import           Helper

import           Test.Hspec.Core.Format

import           Test.Hspec.Core.Runner.Result

spec :: Spec
spec = do
  describe "Summary" $ do
    let
      summary :: Summary
      summary = toSummary $ toSpecResult [item Success, item failure]

    it "can be deconstructed via accessor functions" $ do
      (summaryExamples &&& summaryFailures) summary `shouldBe` (2, 1)

    it "can be deconstructed via pattern matching" $ do
      let Summary examples failures = summary
      (examples, failures) `shouldBe` (2, 1)

    it "can be deconstructed via RecordWildCards" $ do
      let Summary{..} = summary
      (summaryExamples, summaryFailures) `shouldBe` (2, 1)

  describe "specResultSuccess" $ do
    context "when all spec items passed" $ do
      it "returns True" $ do
        specResultSuccess (toSpecResult [item Success]) `shouldBe` True

    context "with a failed spec item" $ do
      it "returns False" $ do
        specResultSuccess (toSpecResult [item Success, item failure]) `shouldBe` False

    context "with an empty result list" $ do
      it "returns True" $ do
        specResultSuccess (toSpecResult []) `shouldBe` True
  where
    failure = Failure Nothing NoReason
    item result = (([], ""), Item Nothing 0 "" result)