Skip to content

Releases: testforgejs/testforge

TestForge v1.0.0-beta.2

Pre-release

Choose a tag to compare

@rmlev rmlev released this 13 Sep 16:00

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:

  • CreateTestFrameworkOptions
  • PresetExtension
  • PluginManifestEntry

📚 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

Pre-release

Choose a tag to compare

@rmlev rmlev released this 07 Sep 20:18

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 PluginOptionsFactory functions.
    • Each pipeline context receives a fresh plugin configuration instead of sharing mutable configuration objects.
    • This prevents state from leaking between independent test environments.

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

Pre-release

Choose a tag to compare

@rmlev rmlev released this 14 Aug 20:10

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@beta

npm

npm install -D @testforgejs/vue-test-core@beta @testforgejs/vue-test-preset-recommended@beta

Yarn

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.