|
| Summary: |
Add test APIs to wait for the BlockNote auto-save and for a new document version over REST to be saved in the background |
| Version: |
18.4.6 |
| Description: |
Functional tests that check something happening saved in the background (e.g. by an editor's auto-save) have to wait for it, and today they do so with {{getDriver()}} calls in the test class (raising the driver timeout, polling with {{waitUntilCondition}}), which breaks the page-object boundary: the test shouldn't need to know how long to wait or how to poll.
Add test APIs that do the waiting themselves: * {{TestUtils.RestTestUtils#waitForNewVersion(reference, version, timeout)}}: wait for a document to move past a given version, polling it over REST (so it works whichever browser tab, if any, saves it), and return the new version. It throws a {{TimeoutException}} otherwise, which also lets a test check that no new version is created. * {{BlockNoteEditor#waitForAutoSave Example: the BlockNote auto-save tests ( )}} and {{ BlockNoteEditor#isAutoSavedWithinNextInterval() AutoSaveIT }} : ). They use this API, plus page-object methods that wait for / watch the auto-save , with timeouts derived from the configured interval set through ( {{ setAutoSaveInterval BlockNoteEditor#waitForAutoSave ()}} .
and {{ AutoSaveIT BlockNoteEditor#isAutoSavedWithinNextInterval() }} is the first user: it ), and no longer calls call {{getDriver()}}. |
|