Add Hashdict test
parent
cee2b3a5bb
commit
26ca6600d7
|
@ -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 )
|
||||||
|
)
|
||||||
|
]
|
||||||
|
]
|
Loading…
Reference in New Issue