Skip to content

0.23.0

Released: March 2026

New Features

Cassandra Support

New stove-cassandra module for testing applications that use Apache Cassandra:

dependencies {
    testImplementation("com.trendyol:stove-cassandra")
}

Configure in your Stove setup:

Stove()
  .with {
    cassandra {
      CassandraSystemOptions(
        keyspace = "my_keyspace",
        configureExposedConfiguration = { cfg ->
          listOf(
            "spring.cassandra.contact-points=${cfg.host}:${cfg.port}",
            "spring.cassandra.local-datacenter=${cfg.datacenter}",
            "spring.cassandra.keyspace-name=${cfg.keyspace}"
          )
        }
      ).migrations {
        register<CreateKeyspaceMigration>()
      }
    }
  }.run()

Includes:

  • CQL statement execution (shouldExecute) and query assertions (shouldQuery)
  • Prepared/bound statement support
  • Raw CqlSession access via session()
  • Keyspace-aware session management — sessions are created without a keyspace first, then rebound after migrations create it
  • Migrations via CassandraMigration type alias
  • Container pause/unpause for fault injection
  • Provided instance support via CassandraSystemOptions.provided()
  • Cleanup hooks

See the Cassandra documentation for full details.

Portal — Local Observability Dashboard

New stove-portal module and a companion CLI (stove) that gives you a real-time web dashboard for your e2e test runs.

Add one line to your Stove config:

Stove()
  .with {
    portal { PortalSystemOptions(appName = "product-api") }
    tracing { enableSpanReceiver() }
    // ... other systems
  }.run()

Start the CLI, run your tests, and open http://localhost:4040:

  • Timeline — every HTTP call, Kafka message, database query with inputs, outputs, expected vs. actual
  • Trace — distributed trace tree from OpenTelemetry spans, with exception details and stack traces
  • Snapshots — system state cards captured at test boundaries
  • Kafka Explorer — dedicated view with consumed/published/failed counts and expandable JSON payloads

The portal emitter is fault-tolerant: non-blocking queue, auto-disables after 5 consecutive gRPC failures, never breaks your tests. If the CLI isn't running, nothing happens.

Install the CLI:

brew install Trendyol/trendyol-tap/stove

See the Portal documentation for full details.


Documentation

  • Comprehensive documentation improvements across all pages
  • Added Cassandra to provided instances, components index, and README
  • Fixed inaccurate Docker requirement claims — docs now clarify that Docker is only needed in container mode, not when using provided instances
  • Fixed incorrect TestSystemInterceptor references → TestSystemKafkaInterceptor<*, *> in Kafka docs
  • Expanded Ktor framework docs with DI auto-detection table and tabbed examples
  • Added Spring Boot 4.x addTestDependencies4x section
  • Added missing MySQL section to provided instances docs
  • Added 0.21.2 → 0.22.x migration notes to troubleshooting
  • Added Portal documentation with architecture, installation, configuration, and REST API reference

Dependency Updates

  • Testcontainers 2.0.4
  • Apache Cassandra Java Driver 4.19.2 (new)

Migration Guide

From 0.22.x to 0.23.0

This is a non-breaking release. All existing APIs remain compatible.

New Features to Opt Into

Cassandra: Add stove-cassandra to your dependencies if you're testing against Cassandra. See the Cassandra documentation.

Portal: Add stove-portal to your dependencies and install the CLI via Homebrew (brew install Trendyol/trendyol-tap/stove) or the shell script. See the Portal documentation.