Skip to content

Ability to specify a Negative Context #290

@cowboyd

Description

@cowboyd

I ran into a situation when using interactors on a project where there were two instances of a component on screen. One that was inside a TabPane, and one that was not. Let's call the component C

The containment hierarchy was:

- Parent
  - C()
  - Tabs()
    - C()

It is possible in this scenario to To interact with C(2) unambiguously, via:

Tabs().find(C())

But it is NOT possible to interact with C(1) unambiguously because there is no context you can specify in which C(2) is not also in that context.

There are a couple of workarounds:

  1. Create a filter on the DOM order, and use it to disambiguate
  2. Create standalone filter on C() to see if it was in a tab pane, or not.

But these are not ideal because neither of these filters are stable over time.

Ideally, we'd like to have a "negative context" specifier to say that I want to interact with C not within the context of Tabs:

C().outside(Tabs()).click()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions