avh4 / elm-program-test

Test Elm programs
https://elm-program-test.netlify.com/
MIT License
93 stars 27 forks source link

ProgramTest.selectOption gives parsing error "firstErrorOf: couldn't parse failure report: Expecting Keyword ▼ Query.has" #176

Open aaronwilsonacima opened 1 year ago

aaronwilsonacima commented 1 year ago

Error given in elm-test

    ▼ ProgramTest.selectOption "state" "State" "UT" "Utah"

    ✓ check label exists:
      ✓ has tag "label"
      ✓ has attribute "htmlFor" "state"
      ✓ has text "State"
    ✓ find select:
      ✓ has tag "select"
      ✓ has attribute "id" "state"
    ✗ check option exists:
      ✗ PLEASE REPORT THIS AT <https://github.com/avh4/elm-program-test/issues>: firstErrorOf: couldn't parse failure report: Expecting Keyword ▼ Query.has  at row 843, col 84

Line calling selectOption

|> ProgramTest.selectOption "state" "State" "UT" "Utah"



 My HTML output
 `<label` for="state">
                                State
                            </label>
                            <select id="state">
                                <option value="AL" selected=false>
                                    Alabama
                                </option>
                                <option value="AK" selected=false>
                                    Alaska
                                </option>
                                <option value="AZ" selected=false>
                                    Arizona
                                </option>
                                <option value="AR" selected=false>
                                    Arkansas
                                </option>
                                <option value="CA" selected=false>
                                    California
                                </option>
                                <option value="CO" selected=false>
                                    Colorado
                                </option>
                                <option value="CT" selected=false>
                                    Connecticut
                                </option>
                                <option value="DE" selected=false>
                                    Delaware
                                </option>
                                <option value="DC" selected=false>
                                    District of Columbia
                                </option>
                                <option value="FL" selected=false>
                                    Florida
                                </option>
                                <option value="GA" selected=false>
                                    Georgia
                                </option>
                                <option value="HI" selected=false>
                                    Hawaii
                                </option>
                                <option value="ID" selected=false>
                                    Idaho
                                </option>
                                <option value="IL" selected=false>
                                    Illinois
                                </option>
                                <option value="IN" selected=false>
                                    Indiana
                                </option>
                                <option value="IA" selected=false>
                                    Iowa
                                </option>
                                <option value="KS" selected=false>
                                    Kansas
                                </option>
                                <option value="KY" selected=false>
                                    Kentucky
                                </option>
                                <option value="LA" selected=false>
                                    Louisiana
                                </option>
                                <option value="ME" selected=false>
                                    Maine
                                </option>
                                <option value="MD" selected=false>
                                    Maryland
                                </option>
                                <option value="MA" selected=false>
                                    Massachusetts
                                </option>
                                <option value="MI" selected=false>
                                    Michigan
                                </option>
                                <option value="MN" selected=false>
                                    Minnesota
                                </option>
                                <option value="MS" selected=false>
                                    Mississippi
                                </option>
                                <option value="MO" selected=false>
                                    Missouri
                                </option>
                                <option value="MT" selected=false>
                                    Montana
                                </option>
                                <option value="NE" selected=false>
                                    Nebraska
                                </option>
                                <option value="NV" selected=false>
                                    Nevada
                                </option>
                                <option value="NH" selected=false>
                                    New Hampshire
                                </option>
                                <option value="NJ" selected=false>
                                    New Jersey
                                </option>
                                <option value="NM" selected=false>
                                    New Mexico
                                </option>
                                <option value="NY" selected=false>
                                    New York
                                </option>
                                <option value="NC" selected=false>
                                    North Carolina
                                </option>
                                <option value="ND" selected=false>
                                    North Dakota
                                </option>
                                <option value="OH" selected=false>
                                    Ohio
                                </option>
                                <option value="OK" selected=false>
                                    Oklahoma
                                </option>
                                <option value="OR" selected=false>
                                    Oregon
                                </option>
                                <option value="PA" selected=false>
                                    Pennsylvania
                                </option>
                                <option value="RI" selected=false>
                                    RhodeIsland
                                </option>
                                <option value="SC" selected=false>
                                    South Carolina
                                </option>
                                <option value="SD" selected=false>
                                    South Dakota
                                </option>
                                <option value="TN" selected=false>
                                    Tennessee
                                </option>
                                <option value="TX" selected=false>
                                    Texas
                                </option>
                                <option value="UT" selected=false>
                                    Utah
                                </option>
                                <option value="VT" selected=false>
                                    Vermont
                                </option>
                                <option value="VA" selected=false>
                                    Virginia
                                </option>
                                <option value="WA" selected=false>
                                    Washington
                                </option>
                                <option value="WV" selected=false>
                                    West Virginia
                                </option>
                                <option value="WI" selected=false>
                                    Wisconsin
                                </option>
                                <option value="WY" selected=false>
                                    Wyoming
                                </option>
                            </select>
`
aaronwilsonacima commented 1 year ago

Turns out I had two of these state selects with the same ID. I discovered this once I change to simulateDomEvent and queried by id