summaryrefslogtreecommitdiff
path: root/tests/Language
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2021-02-15 09:04:16 +0100
committerEugen Wissner <belka@caraus.de>2021-02-15 09:04:16 +0100
commitd74e27e90330400fa97296f09dae0777f340bfe1 (patch)
tree0097bcdb15abf14a3e185959824f4f07c8eea37e /tests/Language
parent90d36f66b9b5a4cae2fb9f15826856e6f4649bf4 (diff)
downloadgraphql-d74e27e90330400fa97296f09dae0777f340bfe1.tar.gz
traverseMaybe OrderedMap
Diffstat (limited to 'tests/Language')
-rw-r--r--tests/Language/GraphQL/Execute/OrderedMapSpec.hs42
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