An attempt to write a test runner/framework for GJS from scratch.
Goals:
- Support for complex e2e/integration tests, not only unit tests.
- No dependencies except GJS itself. Must be loadable into GNOME Shell process.
- Integration with Meson (should be usable as a subproject, compatible with the built-in test runner).
- Optional TypeScript support through JSDoc comments.
- Hamcrest-like composable assertions (or "asymmetric matchers" in terms of Jest and Jasmine).
- YAML for "expected" and "actual" value representation. Anchors and aliases to represent cyclic objects, comments for errors and things that aren't normal JS properties.
- Optional integration with Allure Framework (still with no runtime dependencies).
- Built-in GJS and GNOME-specific tools: isolated GNOME Shell session (like https://gitlab.com/dogtail/dogtail), memory leak detection (https://gitlab.gnome.org/GNOME/gjs/-/blob/master/tools/heapgraph.py - maybe rewrite in GJS).