Introducing Our New End-to-End Testing Suite
October 21, 2025
By Cole Manel
As we continue to bring more transparency to our development, I wanted to highlight some of the work happening at HexOS, even if it’s not something users directly interact with.
A New Way to Test
We’ve been hard at work and are excited to share a significant improvement to our development workflow: a dedicated end-to-end (E2E) testing suite.
Before this, much of our testing was done manually. That meant when we made an update to folders, we had to test every possible scenario: encrypted folders, multiple users with different permissions, quotas enabled, systems with slower hardware, or situations where a folder is being created but no users exist. You could imagine how time consuming this could be.
This new infrastructure provides better coverage across local development environments and gives the team greater, more efficient ways to test our work.
Testing in Action
Here’s an example of tests validating app installation from our curated templates, verifying they run correctly and uninstall cleanly.
This is just one category of tests. We have the ability to test nearly every aspect of the HexOS platform, from storage operations to network configurations.
Automated Testing with GitHub Actions
Beyond running tests locally, we've integrated the E2E suite with GitHub Actions to automatically run tests. The workflow uses dedicated test servers running different TrueNAS versions (Eel, Fangtooth, etc.), each pre-configured with the necessary credentials.
Tests can be triggered manually in GitHub Actions to target a specific platform or all platforms, with specific test suites (auth, reset, apps) or the complete suite. There's also an optional pull preview URL parameter for testing in-progress Command Deck PRs.
Here's an example of the GitHub Actions workflow and what the downloadable results look like.
Manual workflow trigger with platform and test suite selection
Test execution in progress
Test results summary with downloadable video artifacts
Downloaded test results showing the recorded test execution
Real-World Impact
This new testing suite has already proven valuable during our 25.x compatibility work with Eel and Fangtooth. The comprehensive coverage helps catch issues early in the development cycle, before they make it into production.
Better local testing means:
- Earlier bug detection - Issues are caught before creating PRs
- Improved confidence - Developers can verify changes across the full app ecosystem
- Faster iteration - Quick feedback loops during development
- Better quality - Fewer regressions make it to users
Along with benefitting our devlopers local environments, this opens the possibility of making our E2E repository public so app curators can add their own app-specific tests when building new curations.
Moving Forward
All new tests for future functionality will be added to this suite where feasible. As we continue to expand HexOS, adding features like snapshots, replication, and advanced networking, having robust E2E coverage will be crucial to maintaining quality and development velocity.
We hope that sharing a glimpse of what’s happening behind the scenes is just as exciting for you as it is for us. We'll continue to share interesting details about our development as they come!