Skip to content

docs: cover the browserless testers and methods added in 1.2 - #6089

Open
mshabarov wants to merge 1 commit into
mainfrom
docs/browserless-1.2-tester-api
Open

mshabarov wants to merge 1 commit into
mainfrom
docs/browserless-1.2-tester-api

Conversation

@mshabarov

@mshabarov mshabarov commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Browserless Test 1.2 is what Vaadin 25.3 ships. It adds seven testers and a set of tester methods that the Component Testers page does not mention, and it changes what a value tester does with a value that breaks a constraint. The page currently tells a test author the opposite of what the code does.

Covered here:

  • vaadin/browserless-test#211NumberFieldTester, DatePickerTester, TimePickerTester and DateTimePickerTester no longer throw on min / max / step / required violations. They commit the value and leave the field invalid, and isValid() asserts the outcome. The page's Constraint Enforcement example claimed the opposite.
  • vaadin/browserless-test#189TreeGridTester with expand, collapse, isExpanded and hasChildren.
  • vaadin/browserless-test#197SplitLayoutTester, CardTester and AvatarGroupTester.
  • vaadin/browserless-test#187GridTester.deselect(int) and deselectAll().
  • vaadin/browserless-test#186AccordionTester.closeDetails() and toggleDetails(String).
  • vaadin/browserless-test#191NumberFieldTester.stepUp() / stepDown() and isValid().
  • vaadin/browserless-test#183DialogTester.pressEscape() and clickOutside().
  • vaadin/browserless-test#168 — a uniform clear() plus the new clickClearButton().
  • vaadin/browserless-test#185CheckboxTester.check() / uncheck() and SwitchTester.switchOn() / switchOff().
  • vaadin/browserless-test#198UploadTester enforces maxFiles, maxFileSize and accepted types, and adds getLastUploadStatus() and ensureUploaded().
  • vaadin/browserless-test#188 — tester interactions reach the application as client-originated events.

Four testers released earlier, in 1.1.2, never reached the docs either, so they are added with a V25.2 badge: DashboardTester (vaadin/browserless-test#105), BreadcrumbsTester.getItemPaths() (vaadin/browserless-test#107), TextTester (vaadin/browserless-test#135) and MarkdownTester (vaadin/browserless-test#132).

What changed

In articles/flow/testing/browserless/component-testers.adoc:

  • Using Component Testers — one sentence saying that a tester drives the component through the browser's path, so isFromClient() behaves as it does in a running application.
  • Common Testers — new rows for TreeGrid, Accordion, SplitLayout, Card, AvatarGroup, Dashboard, Text and Markdown, and new methods on the TextField, Checkbox, NumberField, Grid, Dialog, Upload, Breadcrumbs and Switch rows.
  • Constraint Enforcement — rewritten around the distinction the code makes. A constraint that keeps the value out of the field, such as maxLength or an allowed character pattern, still makes the tester throw. A constraint that only marks the field invalid is committed, as a browser commits it, and asserted with isValid().
  • Clearing a Value — a new section for clear() versus clickClearButton(), and the wording selection testers use instead.

Notes for the reviewer

  • vaadin/browserless-test#185 and #198 are merged but landed after the 1.2.0-rc1 tag, so they are not in rc1. They need 1.2.0 final to ship with 25.3. If the release does not pick them up, drop the check() / uncheck(), switchOn() / switchOff(), getLastUploadStatus() and ensureUploaded() entries.
  • The behavior change from vaadin/browserless-test#211 is breaking for existing tests that assert assertThrows(IllegalArgumentException.class, ...). The upgrade-guide note is docs: add the browserless behavior changes to the upgrade guide #6101.
  • Dashboard is a commercial component, like the GridPro and Chart rows already in the table.

How to test

Documentation only, with inline snippets that are not compiled. The behavior matches NumberFieldTester, TreeGridTester, AccordionTester, DialogTester, UploadTester and the other testers on vaadin/browserless-test main.

🤖 Generated with Claude Code

Browserless Test 1.2 adds testers and tester methods that the Component
Testers page does not mention, and it changes what a value tester does
with a value that breaks a constraint.

- Common Testers: rows for TreeGrid, SplitLayout, Card, AvatarGroup,
  Accordion, Dashboard, Text, and Markdown; new methods on TextField,
  Checkbox, NumberField, Grid, Dialog, Upload, Breadcrumbs, and Switch.
- Constraint Enforcement: a constraint the browser enforces before the
  value is entered still makes the tester throw, while min, max, step,
  and required values are committed and leave the field invalid, which
  isValid() asserts.
- Clearing a Value: clear() models the keyboard, clickClearButton()
  needs a visible clear button, and selection testers have their own
  wording.
- Tester interactions reach the application as client-originated events.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@mshabarov mshabarov added the target/v25.3 Automatically cherry-pick to the v25.3 branch label Sep 21, 2026
@mcollovati
mcollovati self-requested a review September 21, 2026 08:55
@mcollovati

Copy link
Copy Markdown
Contributor

vaadin/browserless-test#185 and #198 are merged but landed after the 1.2.0-rc1 tag, so they are not in rc1. They need 1.2.0 final to ship with 25.3. If the release does not pick them up, drop the check() / uncheck(), switchOn() / switchOff(), getLastUploadStatus() and ensureUploaded() entries.

I don't get this point. Version 1.2 will never be released because we moved directly to 25.3. All mentioned methods seem to be in 25.3

@mcollovati

Copy link
Copy Markdown
Contributor

Should also mention GridContextMenuTester

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

target/v25.3 Automatically cherry-pick to the v25.3 branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants