@@ -56,6 +56,7 @@ main = hspecX $ do
56 describe "numbers" $ do
56 describe "numbers" $ do
57 it "parses as string when quoted" caseQuotedNumber
57 it "parses as string when quoted" caseQuotedNumber
58 it "parses as number when unquoted" caseUnquotedNumber
58 it "parses as number when unquoted" caseUnquotedNumber
59+ it "parses as number !!str is present" caseAttribNumber
59 describe "booleans" $ do
60 describe "booleans" $ do
60 it "parses when all lowercase" caseLowercaseBool
61 it "parses when all lowercase" caseLowercaseBool
61 it "parses when all uppercase" caseUppercaseBool
62 it "parses when all uppercase" caseUppercaseBool
@@ -292,9 +293,9 @@ caseMergeSequence = do
292 isJust maybeRes @? "decoder should return Just YamlObject but returned Nothing"
293 isJust maybeRes @? "decoder should return Just YamlObject but returned Nothing"
293 let res = fromJust maybeRes
294 let res = fromJust maybeRes
294 mappingKey res "foo1" @?= (mkScalar "foo")
295 mappingKey res "foo1" @?= (mkScalar "foo")
295− mappingKey res "k1" @?= (D.Number 1)
296+ mappingKey res "k1" @?= (D.String "1")
296− mappingKey res "k2" @?= (D.Number 2)
297+ mappingKey res "k2" @?= (D.String "2")
297− mappingKey res "k3" @?= (D.Number 4)
298+ mappingKey res "k3" @?= (D.String "4")
299caseDataTypes :: Assertion
300caseDataTypes :: Assertion
300caseDataTypes =
301caseDataTypes =
@@ -309,9 +310,10 @@ caseDataTypes =
309 , ("null", D.Null)
310 , ("null", D.Null)
312−caseQuotedNumber, caseUnquotedNumber :: Assertion
313+caseQuotedNumber, caseUnquotedNumber, caseAttribNumber :: Assertion
313caseQuotedNumber = D.decode "foo: \"1234\"" @?= Just (object [("foo", D.String "1234")])
314caseQuotedNumber = D.decode "foo: \"1234\"" @?= Just (object [("foo", D.String "1234")])
314caseUnquotedNumber = D.decode "foo: 1234" @?= Just (object [("foo", D.Number 1234)])
315caseUnquotedNumber = D.decode "foo: 1234" @?= Just (object [("foo", D.Number 1234)])
316+caseAttribNumber = D.decode "foo: !!str 1234" @?= Just (object [("foo", D.String "1234")])
316obj :: Maybe D.Value
318obj :: Maybe D.Value
317obj = Just (object [("foo", D.Bool False), ("bar", D.Bool True), ("baz", D.Bool True)])
319obj = Just (object [("foo", D.Bool False), ("bar", D.Bool True), ("baz", D.Bool True)])
@@ -319,4 +321,4 @@ obj = Just (object [("foo", D.Bool False), ("bar", D.Bool True), ("baz", D.Bool
319caseLowercaseBool, caseUppercaseBool, caseTitlecaseBool :: Assertion
321caseLowercaseBool, caseUppercaseBool, caseTitlecaseBool :: Assertion
320caseLowercaseBool = D.decode "foo: off\nbar: y\nbaz: true" @?= obj
322caseLowercaseBool = D.decode "foo: off\nbar: y\nbaz: true" @?= obj
321caseUppercaseBool = D.decode "foo: FALSE\nbar: Y\nbaz: ON" @?= obj
323caseUppercaseBool = D.decode "foo: FALSE\nbar: Y\nbaz: ON" @?= obj
322−caseTitlecaseBool = D.decode "foo: No\nbar: Yes\nbaz: True" @?= obj
324+caseTitlecaseBool = D.decode "foo: No\nbar: Yes\nbaz: True" @?= obj