elm-explorations / test

Write unit and fuzz tests for Elm code.
https://package.elm-lang.org/packages/elm-explorations/test/latest
BSD 3-Clause "New" or "Revised" License
236 stars 40 forks source link

`Selector.all` does not fail if any descendants match the given selectors #213

Open decioferreira opened 1 year ago

decioferreira commented 1 year ago

To reproduce:

Html.fieldset [ Attributes.disabled False ]
    [ Html.button [ Attributes.disabled True ]
        [ Html.text "Reply"
        ]
    ]
    |> Query.fromHtml
    |> Query.has
        [ Selector.all
            [ Selector.tag "fieldset"
            , Selector.attribute (Attributes.disabled True)
            ]
        ]

Another example with a class selector:

Html.fieldset []
    [ Html.button [ Attributes.class "btn btn-large" ]
        [ Html.text "Reply"
        ]
    ]
    |> Query.fromHtml
    |> Query.has
        [ Selector.all
            [ Selector.tag "fieldset"
            , Selector.class "btn"
            ]
        ]

Link to running examples: https://ellie-app.com/m7RYfvvLvjPa1

Actual result: it passes (because there is a descendant that matches the second selector)

Expected result: my understanding is that Selector.all allows us to find a single HTML element that matches all given selectors - if this is not the case, then I would say the description of this function should be clarified