module Example exposing (fuzzTest, unitTest, viewTest) import Expect import Fuzz exposing (int) import Test exposing (..) import Test.Html.Query as Query import Test.Html.Selector exposing (tag, text) {-| See -} unitTest : Test unitTest = describe "simple unit test" [ test "Inc adds one" <| \() -> update Inc (Model 0 "") |> Tuple.first |> .counter |> Expect.equal 1 ] {-| See -} fuzzTest : Test fuzzTest = describe "simple fuzz test" [ fuzz int "Inc ALWAYS adds one" <| \ct -> update Inc (Model ct "") |> Tuple.first |> .counter |> Expect.equal (ct + 1) ] {-| see -} viewTest : Test viewTest = describe "Testing view function" [ test "Button has the expected text" <| \() -> Model 0 "" |> view |> Query.fromHtml |> Query.findAll [ tag "button" ] |> Query.first |> Query.has [ text "+ 1" ] ]