diff --git a/part7/README.md b/part7/README.md index 4935c47..4c7e6af 100644 --- a/part7/README.md +++ b/part7/README.md @@ -26,5 +26,6 @@ elm test TestRunner.elm ## References +* [Using Elm packages](https://github.com/elm-lang/elm-package/blob/master/README.md#basic-usage) * [elm-test documentation](http://package.elm-lang.org/packages/deadfoxygrandpa/elm-test/3.1.1/) * [`(<|)` documentation](http://package.elm-lang.org/packages/elm-lang/core/3.0.0/Basics#<|) diff --git a/part7/test/Tests.elm b/part7/test/Tests.elm index b017897..14151ae 100644 --- a/part7/test/Tests.elm +++ b/part7/test/Tests.elm @@ -15,8 +15,8 @@ all = """{ "items": [] }""" in assertEqual - (decodeString responseDecoder emptyResponse) ({- TODO: what goes here? -}) + (decodeString responseDecoder emptyResponse) , test "they can decode responses with results in them" <| let response = @@ -25,10 +25,25 @@ all = ] }""" in assertEqual - (decodeString responseDecoder response) (Ok [ { id = 5, name = "foo", stars = 42 } , { id = 3, name = "bar", stars = 77 } ] ) + (decodeString responseDecoder response) + , test "they result in an error for invalid JSON" + <| let + response = + """{ "pizza": [] }""" + + isErrorResult result = + -- TODO return True if the given Result is an Err of some sort, + -- and False if it is an Ok of some sort. + -- + -- Result docs: http://package.elm-lang.org/packages/elm-lang/core/3.0.0/Result + False + in + assertEqual + True + (isError (decodeString responseDecoder response)) ] diff --git a/part7/test/elm-package.json b/part7/test/elm-package.json index a440485..8a04845 100644 --- a/part7/test/elm-package.json +++ b/part7/test/elm-package.json @@ -10,6 +10,7 @@ "exposed-modules": [], "dependencies": { "deadfoxygrandpa/elm-test": "3.1.1 <= v < 4.0.0", + "NoRedInk/elm-decode-pipeline": "1.0.0 <= v < 2.0.0", "elm-lang/core": "3.0.0 <= v < 4.0.0", "evancz/elm-effects": "2.0.0 <= v < 3.0.0", "evancz/elm-html": "4.0.0 <= v < 5.0.0",