eeue56/elm-html-test/3.1.1

NOTE: this package is not compatible with Elm 0.19.1

Test.Html.Events

This module allows you to simulate events on Html nodes, the Msg generated by the event is returned so you can test it

type Event
= Click
| DoubleClick
| MouseDown
| MouseUp
| MouseEnter
| MouseLeave
| MouseOver
| MouseOut
| Input String
| Check Bool
| Submit
| Blur
| Focus
| CustomEvent String String

Event constructors to simulate events

type EventNode msg

A simulated event.

See simulate.

simulate : Event -> Single msg -> EventNode msg

Simulates an event on a node

type Msg
    = Change String


test "Input produces expected Msg" <|
    \() ->
        Html.input [ onInput Change ] [ ]
            |> Query.fromHtml
            |> Events.simulate (Input "cats")
            |> Events.expectEvent (Change "cats")
expectEvent : msg -> EventNode msg -> Expectation

Passes if given event equals the triggered event

type Msg
    = Change String


test "Input produces expected Msg" <|
    \() ->
        Html.input [ onInput Change ] [ ]
            |> Query.fromHtml
            |> Events.simulate (Input "cats")
            |> Events.expectEvent (Change "cats")
eventResult : EventNode msg -> Result String msg

Returns a Result with the Msg produced by the event simulated on a node

test "Input produces expected Msg" <|
    \() ->
        Html.input [ onInput Change ] [ ]
            |> Query.fromHtml
            |> Events.simulate (Input "cats")
            |> Events.eventResult
            |> Expect.equal (Ok <| Change "cats")