Add Hashdict test

elm-test
Bram 2023-12-24 15:49:55 +01:00
parent cee2b3a5bb
commit 26ca6600d7
1 changed files with 38 additions and 0 deletions

View File

@ -0,0 +1,38 @@
module Test.Tools.Hashdict exposing (..)
import Test exposing (..)
import Fuzz exposing (Fuzzer)
import Internal.Tools.Hashdict as Hashdict exposing (Hashdict)
import Test.Values.Event as TestEvent
import Internal.Values.Event as Event
import Json.Encode as E
import Json.Decode as D
import Expect
fuzzer : (a -> String) -> Fuzzer a -> Fuzzer (Hashdict a)
fuzzer toHash fuz =
Fuzz.map (Hashdict.fromList toHash) (Fuzz.list fuz)
suite : Test
suite =
describe "Hashdict"
[ describe "init"
[ test "init isEmpty"
( Hashdict.empty identity
|> Hashdict.isEmpty
|> Expect.equal True
|> always
)
]
, describe "JSON"
[ fuzz2 (fuzzer .eventId TestEvent.fuzzer) (Fuzz.intRange 0 10) "JSON encode -> JSON decode"
(\hashdict indent ->
hashdict
|> Hashdict.encode Event.encode
|> E.encode indent
|> D.decodeString (Hashdict.decoder .eventId Event.decoder)
|> Result.map Hashdict.toList
|> Expect.equal ( Ok <| Hashdict.toList hashdict )
)
]
]