packages feed

patrol-0.1.0.1: source/test-suite/Patrol/Type/BreadcrumbsSpec.hs

{-# LANGUAGE QuasiQuotes #-}

module Patrol.Type.BreadcrumbsSpec where

import qualified Data.Aeson as Aeson
import qualified Data.Aeson.QQ.Simple as Aeson
import qualified Data.Text as Text
import qualified Patrol.Type.Breadcrumb as Breadcrumb
import qualified Patrol.Type.Breadcrumbs as Breadcrumbs
import qualified Test.Hspec as Hspec

spec :: Hspec.Spec
spec = Hspec.describe "Patrol.Type.Breadcrumbs" $ do
  Hspec.describe "ToJSON" $ do
    Hspec.it "works" $ do
      let breadcrumbs = Breadcrumbs.empty
          json = [Aeson.aesonQQ| {} |]
      Aeson.toJSON breadcrumbs `Hspec.shouldBe` json

    Hspec.it "works with a value" $ do
      let breadcrumb = Breadcrumb.empty {Breadcrumb.category = Text.pack "example-category"}
          breadcrumbs = Breadcrumbs.empty {Breadcrumbs.values = [breadcrumb]}
          json = [Aeson.aesonQQ| { "values": [ { "category": "example-category" } ] } |]
      Aeson.toJSON breadcrumbs `Hspec.shouldBe` json