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:
Create a filter on the DOM order, and use it to disambiguate
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 Cnot within the context of Tabs:
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:
It is possible in this scenario to To interact with
C(2)
unambiguously, via:But it is NOT possible to interact with
C(1)
unambiguously because there is no context you can specify in whichC(2)
is not also in that context.There are a couple of workarounds:
standalone
filter onC()
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 ofTabs
: