Releases: testforgejs/testforge
Release list
TestForge v1.0.0-beta.2
This release improves the preset configuration API and clarifies how TestForge is intended to be used in real-world projects.
✨ Highlights
Flexible preset configuration
createTestFramework() now supports two mutually exclusive preset configuration forms:
preset— for a single runtime environment;presets— for a registry of named runtime environments.
createTestFramework({
preset: projectPreset,
});or:
createTestFramework({
presets: {
default: projectPreset,
i18n: i18nPreset,
},
});A single preset is internally treated as the default preset. Named presets can be selected for individual factory invocations through extraOptions.preset.
Project-specific presets
The documentation now makes the intended preset workflow clearer:
- recommended presets provide a convenient starting point for exploring TestForge;
- real applications can define project-specific presets;
- application-specific routes, managed plugins, and plugin defaults belong in project-specific presets;
extendPreset()can be used to adapt an existing preset without duplicating it.
Public API improvements
The following types are now available from @testforgejs/vue-test-core:
CreateTestFrameworkOptionsPresetExtensionPluginManifestEntry
📚 Documentation
Updated documentation covers:
- single vs. multiple preset configuration;
- preset selection at runtime;
- project-specific preset authoring;
- preset composition and runtime boundaries;
- the role of recommended presets as a starting point rather than a complete application-specific environment.
⚠️ Beta
TestForge is still in beta. The public API is taking shape, but further improvements and adjustments may still happen before 1.0.0.
This release continues the move toward project-specific, declaratively generated testing environments, which will be further supported by the upcoming TestForge CLI.
TestForge 1.0.0-beta.1
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.
TestForge 1.0.0-beta.0
We are thrilled to announce the initial public beta release of TestForge — an extensible, modern component testing ecosystem designed for Vue 3 and Vue Test Utils.
📦 What's Included
This release introduces the foundational core package along with official integrations and a recommended preset:
- @testforgejs/vue-test-core (
v1.0.0-beta.0) — Core testing utilities, mount pipeline orchestration, and type helpers. - @testforgejs/vue-test-plugin-router (
v1.0.0-beta.0) — Seamless Vue Router integration. - @testforgejs/vue-test-plugin-pinia (
v1.0.0-beta.0) — State management testing with Pinia and @pinia/testing. - @testforgejs/vue-test-plugin-i18n (
v1.0.0-beta.0) — Internationalization support for vue-i18n. - @testforgejs/vue-test-plugin-primevue (
v1.0.0-beta.0) — PrimeVue component context integration. - @testforgejs/vue-test-plugin-vuetify (
v1.0.0-beta.0) — Vuetify setup and theme provisioning. - @testforgejs/vue-test-preset-recommended (
v1.0.0-beta.0) — Official recommended preset combining standard plugins.
🚀 Quick Start
Install the core and the recommended preset in your Vue 3 project using your preferred package manager.
pnpm
pnpm add -D @testforgejs/vue-test-core@beta @testforgejs/vue-test-preset-recommended@betanpm
npm install -D @testforgejs/vue-test-core@beta @testforgejs/vue-test-preset-recommended@betaYarn
yarn add -D @testforgejs/vue-test-core@beta @testforgejs/vue-test-preset-recommended@beta📚 Documentation
For guides, setup instructions, and examples, check out the TestForge Repository.