diff options
| author | Eugen Wissner <belka@caraus.de> | 2021-02-15 09:04:16 +0100 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2021-02-15 09:04:16 +0100 |
| commit | d74e27e90330400fa97296f09dae0777f340bfe1 (patch) | |
| tree | 0097bcdb15abf14a3e185959824f4f07c8eea37e /tests/Language | |
| parent | 90d36f66b9b5a4cae2fb9f15826856e6f4649bf4 (diff) | |
| download | graphql-d74e27e90330400fa97296f09dae0777f340bfe1.tar.gz | |
traverseMaybe OrderedMap
Diffstat (limited to 'tests/Language')
| -rw-r--r-- | tests/Language/GraphQL/Execute/OrderedMapSpec.hs | 42 |
1 files changed, 42 insertions, 0 deletions
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 |
