TestForge 1.0.0-beta.1
Pre-release
Pre-release
This release introduces a significant update to TestForge's preset architecture and configuration model.
Highlights
-
Preset composition with
extendPreset()- Create project-specific presets from existing presets.
- Extend plugin manifests and customize plugin defaults without duplicating complete preset definitions.
- Added validation for preset extensions and plugin configuration.
-
Layered preset architecture
- Introduced a shared base preset used by the recommended Vitest and Jest presets.
- Runner-specific presets can now build on a common Vue plugin configuration while keeping runner-specific behavior separate.
-
Plugin option factories
- Preset plugin defaults are now defined as
PluginOptionsFactoryfunctions. - Each pipeline context receives a fresh plugin configuration instead of sharing mutable configuration objects.
- This prevents state from leaking between independent test environments.
- Preset plugin defaults are now defined as
Breaking Change
Preset plugin defaults must now be defined as factory functions instead of shared configuration objects.
defaults: {
pinia: () => ({
initialState: {},
}),
}Existing custom presets using plain configuration objects must be migrated to the new factory-based format.
When extending a preset, invoke the original factory explicitly if its configuration should be preserved:
defaults: {
pinia: () => ({
...basePreset.defaults.pinia(),
createSpy: vi.fn,
}),
}Packages
All TestForge packages have been released as 1.0.0-beta.1.
This is a beta release and the configuration APIs may continue to evolve before the stable 1.0.0 release.