Integration Testing
Hosanna applications use two complementary kinds of integration test:
- Vitest tests that exercise several TypeScript modules in one process.
- Full application tests that launch a real Hosanna target, drive it through the test command plane, and inspect rendered state.
Use an in-process test when the behavior does not depend on a launched application, platform input, focus routing, rendering, or persistence. Use a full application test when the contract crosses one of those boundaries.
Full application regression tests
The Hosanna testing package integrates a launched application with Vitest. It provides semantic control and image locators, deterministic waits, remote and capable-browser touch input, registry preconditions, screenshots, reports, failure artifacts, and full-run video on supported transports.
Start with Regression Testing Overview, then follow Installation and Setup for a runnable project layout.
The hosanna-ui-samples-public
suite is the runnable reference for framework behavior, application-specific
preconditions, and integration helpers.
Unit and integration boundaries
Keep most logic in fast unit tests. Promote a scenario to the launched regression suite when it must prove one or more of these contracts:
- application startup and test-run handshake;
- focus movement or restoration after navigation;
- remote, touch, or text input routing;
- screen, control, collection, image, or registry state from a real runtime;
- platform transport behavior;
- screenshot evidence or a visual baseline.
Do not reproduce every unit-level branch through the UI. A focused default regression suite should protect high-value journeys and leave exhaustive data permutations to lower-level tests.