Skip to content

Run the test suite against every supported Vaadin version (split tests into per-version modules) #34

@javier-godoy

Description

@javier-godoy

Feature proposal

The published artifact is compiled once against a baseline Vaadin (14) but is meant to run unchanged on Vaadin 14, 23, 24, and 25, adapting at runtime to each version's JSON layer (elemental.json on ≤24, Jackson on 25+).

Currently the test suite runs against a single Vaadin version, so version-specific behavior — most importantly the elemental.json ↔ Jackson conversions that only execute on Vaadin 25 — is never exercised automatically. We need a build layout that runs the same tests against each supported Vaadin runtime, so a regression on any one version is caught by CI rather than discovered downstream.

Describe solution expectations

Restructure the Maven build into a core library plus per-version test modules:

  • core — a standalone module (no parent) that produces the published artifact, compiled against the baseline Vaadin version.
  • tests-shared — holds the shared test sources, reused by every version module.
  • tests-v14 / tests-v23 / tests-v24 / tests-v25 — thin modules that depend on core + tests-shared and pin a specific Vaadin version, so the shared tests run against each runtime.
  • The root pom.xml becomes an aggregator that builds core and all test modules.

Tests asserting version-specific behavior can branch by major version (e.g. the existing ...Test24 / ...Test25 variants).

Additional information

This guarantees cross-version compatibility (Vaadin 14/23/24/25) is continuously validated rather than assumed, which is the core promise of the add-on.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

Status
In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions