Filesystem API for Vaadin - Browserless Test Support - Vaadin Add-on Directory
Browserless test support for the Filesystem API Vaadin add-onTest support module for the [Filesystem API for Vaadin add-on](https://vaadin.com/directory/component/filesystem-api-for-vaadin---add-on).
Provides an in-memory fake of the browser's File System API so you can write fast,
deterministic unit tests for views that use `ClientFileSystem` — without launching a browser.
Picker dialogs, file reads, and writes all resolve instantly in the JVM.
Pair with browserless-test-junit6 for full server-side Vaadin component testing.
### Features
- **In-memory file system** — populate files and directories, then assert on their contents after your component logic runs
- **Configurable picker responses** — simulate open, save, and directory pickers returning specific files, or user cancellation
- **Permission control** — set the permission state (`granted`, `denied`, `prompt`) for handle operations
- **Synchronous execution** — all futures complete immediately, keeping tests deterministic
### Quick Start
```xml
com.github.mcollovati
filesystem-api-browserless
${filesystem-api.version}
test
com.vaadin
browserless-test-junit6
test
```
```java
@ViewPackages(classes = EditorView.class)
class EditorTests extends BrowserlessTest {
@Test
void open_loads_file_content() {
EditorView view = navigate(EditorView.class);
FileSystemTester tester = FileSystemTester.forComponent(view)
.withFile("notes.txt", "Hello!")
.onOpenFilePicker(PickerResponse.returning("notes.txt"))
.install();
test(view.openBtn).click();
assertEquals("Hello!", view.editor.getValue());
}
@Test
void save_writes_content_to_file() {
EditorView view = navigate(EditorView.class);
FileSystemTester tester = FileSystemTester.forComponent(view)
.onSaveFilePicker(PickerResponse.returningSingle("output.txt"))
.install();
view.editor.setValue("Saved!");
test(view.saveBtn).click();
assertEquals("Saved!", tester.fileSystem().file("output.txt").contentAsString());
}
}
```
View on GitHubFilesystem API for Vaadin - Browserless Test Support version 1.0.1