From d74e27e90330400fa97296f09dae0777f340bfe1 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Mon, 15 Feb 2021 09:04:16 +0100 Subject: traverseMaybe OrderedMap --- tests/Language/GraphQL/Execute/OrderedMapSpec.hs | 42 ++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'tests') diff --git a/tests/Language/GraphQL/Execute/OrderedMapSpec.hs b/tests/Language/GraphQL/Execute/OrderedMapSpec.hs index 8221b92..fd33316 100644 --- a/tests/Language/GraphQL/Execute/OrderedMapSpec.hs +++ b/tests/Language/GraphQL/Execute/OrderedMapSpec.hs @@ -22,3 +22,45 @@ spec = let value :: String value = "value" in OrderedMap.size (OrderedMap.singleton "key" value) `shouldBe` 1 + + it "combines inserted vales" $ + let key = "key" + map1 = OrderedMap.singleton key ("1" :: String) + map2 = OrderedMap.singleton key ("2" :: String) + in OrderedMap.lookup key (map1 <> map2) `shouldBe` Just "12" + + it "shows the map" $ + let actual = show + $ OrderedMap.insert "key1" "1" + $ OrderedMap.singleton "key2" ("2" :: String) + expected = "fromList [(\"key2\",\"2\"),(\"key1\",\"1\")]" + in actual `shouldBe` expected + + it "traverses a map of just values" $ + let actual = sequence + $ OrderedMap.insert "key1" (Just "2") + $ OrderedMap.singleton "key2" $ Just ("1" :: String) + expected = Just + $ OrderedMap.insert "key1" "2" + $ OrderedMap.singleton "key2" ("1" :: String) + in actual `shouldBe` expected + + it "traverses a map with a Nothing" $ + let actual = sequence + $ OrderedMap.insert "key1" Nothing + $ OrderedMap.singleton "key2" $ Just ("1" :: String) + expected = Nothing + in actual `shouldBe` expected + + it "combines two maps preserving the order of the second one" $ + let map1 :: OrderedMap String + map1 = OrderedMap.insert "key2" "2" + $ OrderedMap.singleton "key1" "1" + map2 :: OrderedMap String + map2 = OrderedMap.insert "key4" "4" + $ OrderedMap.singleton "key3" "3" + expected = OrderedMap.insert "key4" "4" + $ OrderedMap.insert "key3" "3" + $ OrderedMap.insert "key2" "2" + $ OrderedMap.singleton "key1" "1" + in (map1 <> map2) `shouldBe` expected -- cgit v1.2.3