11{-# language LambdaCase #-}
22{-# language OverloadedStrings #-}
33
4+ import Data.ByteString.Short.Internal (ShortByteString (SBS ))
5+ import Data.Bytes (Bytes )
6+ import Data.Primitive (ByteArray (ByteArray ))
47import Data.Scientific (Scientific ,scientific )
8+ import Data.Text.Short (ShortText )
59import Test.Tasty (defaultMain ,testGroup ,TestTree )
610import Test.Tasty.HUnit ((@=?) )
711import Twitter100 (encodedTwitter100 ,byteStringTwitter100 )
@@ -36,6 +40,10 @@ tests = testGroup "Tests"
3640 Right (J. Object (Exts. fromList [Exts. fromList [J. Member " foo" J. True , J. Member " bar" J. False ]]))
3741 @=?
3842 J. decode (Bytes. fromAsciiString " {\" foo\" : true, \" bar\" : false }" )
43+ , THU. testCase " D" $
44+ Right (J. String " Smile: 😂" )
45+ @=?
46+ J. decode (shortTextToBytes " \" Smile: 😂\" " )
3947 , THU. testCase " Twitter100" $
4048 case J. decode (Bytes. fromByteArray encodedTwitter100) of
4149 Left _ -> fail " nope"
@@ -62,3 +70,7 @@ toAesonValue = \case
6270 HM. empty mbrs
6371 J. Array vals -> AE. Array $ Exts. fromList $ foldr
6472 (\ x xs -> toAesonValue x : xs) [] vals
73+
74+ shortTextToBytes :: ShortText -> Bytes
75+ shortTextToBytes str = case TS. toShortByteString str of
76+ SBS x -> let y = ByteArray x in Bytes. fromByteArray y
0 commit comments