Part of #120. Blocked by #121.
test(Class<T> tester, Y component) behaves differently per entry point:
BaseBrowserlessTest → TesterRegistry.instantiate(tester, component) — no resolution, instantiates exactly the requested tester.
BrowserlessUIContext → internalWrap(tester, component) — prefers a more specific registered tester (@Tests resolution).
So test(SomeTester.class, component) can return different types depending on the entry point.
Proposal
Decide the intended contract (likely the resolving internalWrap behavior, consistent with single-arg test(Y)), unify both, then move the method into BrowserlessDsl as a default.
Note: behavior decision + likely bug fix; needs a regression test (TesterResolutionTest).
Acceptance criteria
Affected files
shared/.../BrowserlessDsl.java, shared/.../BaseBrowserlessTest.java, shared/.../BrowserlessUIContext.java, junit6/.../TesterResolutionTest.java.
Part of #120. Blocked by #121.
test(Class<T> tester, Y component)behaves differently per entry point:BaseBrowserlessTest→TesterRegistry.instantiate(tester, component)— no resolution, instantiates exactly the requested tester.BrowserlessUIContext→internalWrap(tester, component)— prefers a more specific registered tester (@Testsresolution).So
test(SomeTester.class, component)can return different types depending on the entry point.Proposal
Decide the intended contract (likely the resolving
internalWrapbehavior, consistent with single-argtest(Y)), unify both, then move the method intoBrowserlessDslas adefault.Note: behavior decision + likely bug fix; needs a regression test (
TesterResolutionTest).Acceptance criteria
test(Class, Y)has one documented behavior across all implementations.defaultonBrowserlessDsl; per-class copies removed.Affected files
shared/.../BrowserlessDsl.java,shared/.../BaseBrowserlessTest.java,shared/.../BrowserlessUIContext.java,junit6/.../TesterResolutionTest.java.