Part of #120. Blocked by #121.
AbstractBrowserlessExtension (the @RegisterExtension programmatic API) is a third, verbatim copy of the DSL (navigate ×4, find ×2, findInView, getCurrentView, roundTrip, fireShortcut). Its private getUI() already implements exactly the currentUI() contract (returns UI.getCurrent(), throws BrowserlessTestSetupException if null).
Proposal
Declare AbstractBrowserlessExtension implements BrowserlessDsl, expose getUI() as public UI currentUI(), and delete the duplicated DSL method bodies. (Keep runPendingSignalsTasks until #125.) Low risk — identical public signatures.
Acceptance criteria
Affected files
junit6/.../AbstractBrowserlessExtension.java.
Part of #120. Blocked by #121.
AbstractBrowserlessExtension(the@RegisterExtensionprogrammatic API) is a third, verbatim copy of the DSL (navigate×4,find×2,findInView,getCurrentView,roundTrip,fireShortcut). Its privategetUI()already implements exactly thecurrentUI()contract (returnsUI.getCurrent(), throwsBrowserlessTestSetupExceptionif null).Proposal
Declare
AbstractBrowserlessExtension implements BrowserlessDsl, exposegetUI()aspublic UI currentUI(), and delete the duplicated DSL method bodies. (KeeprunPendingSignalsTasksuntil #125.) Low risk — identical public signatures.Acceptance criteria
currentUI()(and, for now,runPendingSignalsTasks).BrowserlessExtension-based and per-class-lifecycle tests pass unchanged.Affected files
junit6/.../AbstractBrowserlessExtension.java.