Unify test(Class, Y) tester-resolution semantics across DSL implementations
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 50/100
Research direction
Start with shared/.../BrowserlessDsl.java, then compare test(Class, Y) in BaseBrowserlessTest.java and BrowserlessUIContext.java. Read junit6/.../TesterResolutionTest.java and add regression coverage for the chosen resolution behavior. Done means one documented behavior, a default method on BrowserlessDsl, and no per-class copies.
Written by the indexing model from the issue text.
Description
Part of #120. Blocked by #121.
test(Class<T> tester, Y component) behaves differently per entry point:
BaseBrowserlessTest(:465) →TesterRegistry.instantiate(tester, component)— no resolution, instantiates exactly the requested tester.BrowserlessUIContext(:415) →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 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 already exists, and its wrapDialogSubclass_explicitTesterClass_returnsCustomTester exercises test(CustomDialogTester.class, dialog) — but it only asserts non-null, so it passes under either semantics and pins nothing. The new test has to assert the returned type.
Acceptance criteria
-
test(Class, Y)has one documented behavior across all implementations. - It is a
defaultonBrowserlessDsl; per-class copies removed. - Resolution behavior covered by a test that asserts the returned tester type.
Affected files
shared/.../BrowserlessDsl.java, shared/.../BaseBrowserlessTest.java, shared/.../BrowserlessUIContext.java, junit6/.../TesterResolutionTest.java.
- Dominant language
- Java
- Stars
- 1
- Forks
- 3
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 15
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from vaadin/browserless-test
-
Rename MultiSelectComboBoxTester.selectItem(String...) to selectItems(String...)Possibly taken @totally-not-ai claimed this 7 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
vaadin/browserless-test#291 · 3 comments ·
Maintainers usually reply within 1 day
-
(MultiSelect)ComboBoxTester add support for selectItemContaining(String)Possibly taken @totally-not-ai claimed this 28 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
vaadin/browserless-test#270 · 3 comments · 1 reaction ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
vaadin/browserless-test#266 · 2 comments ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
vaadin/browserless-test#123 ·
Maintainers usually reply within 1 day
-
withLabel() doesn't find a field labelled by its FormLayout form itemPossibly taken @totally-not-ai claimed this 3 days ago. Open
Difficulty 3/5 Half a day Newbie friendliness 60/100
vaadin/browserless-test#308 · 1 comment ·
Maintainers usually reply within 1 day
All issues in vaadin/browserless-test
Similar issues
-
5.0.x backport enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 63/100
spring-cloud/spring-cloud-function#1507 ·
Maintainers usually reply within 1 day
-
ai-driven-fuzzing bug claude Minor
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
linagora/twake-calendar-side-service#1417 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
line/armeria#7109 · 3 reactions ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
a2aproject/a2a-java#1275 ·
Maintainers usually reply within 1 day
-
module/ftp Type/Bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
ballerina-platform/ballerina-library#9476 ·
Maintainers usually reply within 1 day