packages feed

yamlstar-0.1.12.0: test/YAMLStar/Tests.hs

{-# LANGUAGE OverloadedStrings #-}

module YAMLStar.Tests where

import qualified Data.Aeson as Aeson
import qualified Data.Vector as V
import Test.Hspec
import YAMLStar

basicTests :: Spec
basicTests = describe "Basic YAML" $ do
  it "parses simple key-value pairs" $ do
    result <- loadYAMLStar "key: value"
    result `shouldBe` Aeson.object [("key", Aeson.String "value")]

  it "parses lists" $ do
    result <- loadYAMLStar "list: [1, 2, 3]"
    result `shouldBe` Aeson.object
      [ ("list", Aeson.Array $ V.fromList
          [Aeson.Number 1, Aeson.Number 2, Aeson.Number 3])
      ]

  it "loads multiple documents" $ do
    result <- loadYAMLStarAll "---\ndoc1\n---\na: 1\n"
    result `shouldBe` Aeson.Array (V.fromList
      [Aeson.String "doc1", Aeson.object [("a", Aeson.Number 1)]])