From f113beda28cb6e4d237cdf10447ce29f17f74394 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Attila=20M=C3=A9sz=C3=A1ros?= Date: Fri, 19 Dec 2025 13:04:33 +0100 Subject: [PATCH 1/2] improve: Add @Sample annotation for expectation pattern releated integration tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Attila Mészáros --- .../expectation/onallevent/ExpectationIT.java | 8 ++++++++ .../PeriodicCleanerExpectationIT.java | 16 ++++++++-------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/expectation/onallevent/ExpectationIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/expectation/onallevent/ExpectationIT.java index 00f3e1d441..1a8d00d802 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/expectation/onallevent/ExpectationIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/expectation/onallevent/ExpectationIT.java @@ -21,12 +21,20 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.javaoperatorsdk.annotation.Sample; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import static io.javaoperatorsdk.operator.baseapi.expectation.onallevent.ExpectationReconciler.DEPLOYMENT_READY; import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@Sample( + tldr = "Basic Expectation Pattern with AllEvents Trigger", + description = """ + Demonstrates the basic expectation pattern using ExpectationManager with triggerReconcilerOnAllEvents = true. + This pattern allows reconcilers to wait for specific conditions to be met (like a Deployment having 3 ready replicas) + before proceeding with status updates. The test shows both successful expectation fulfillment and timeout handling. + Requires @ControllerConfiguration(triggerReconcilerOnAllEvents = true) for proper operation.""") class ExpectationIT { public static final String TEST_1 = "test1"; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/expectation/periodicclean/PeriodicCleanerExpectationIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/expectation/periodicclean/PeriodicCleanerExpectationIT.java index 3e6780babb..5f3319b677 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/expectation/periodicclean/PeriodicCleanerExpectationIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/expectation/periodicclean/PeriodicCleanerExpectationIT.java @@ -21,20 +21,20 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.javaoperatorsdk.annotation.Sample; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import static io.javaoperatorsdk.operator.baseapi.expectation.periodicclean.PeriodicCleanerExpectationReconciler.DEPLOYMENT_READY; import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; -/** - * Integration test showcasing PeriodicCleanerExpectationManager usage. - * - *

This test demonstrates the key benefits of PeriodicCleanerExpectationManager: 1. Works without - * requiring @ControllerConfiguration(triggerReconcilerOnAllEvents = true) 2. Automatically cleans - * up stale expectations periodically 3. Maintains the same expectation API and functionality as the - * regular ExpectationManager - */ +@Sample( + tldr = "Expectation Pattern with Periodic Cleanup", + description = """ + Demonstrates the PeriodicCleanerExpectationManager pattern which provides automatic cleanup of stale expectations. + This pattern works without requiring @ControllerConfiguration(triggerReconcilerOnAllEvents = true) and automatically + cleans up stale expectations periodically (default: 1 minute). This is ideal for 'set and forget' scenarios where + you want the same expectation API and functionality as the regular ExpectationManager but with automatic lifecycle management.""") class PeriodicCleanerExpectationIT { public static final String TEST_1 = "test1"; From f55442906d803a82eda8a8b9e2a3c5abc9417e5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Attila=20M=C3=A9sz=C3=A1ros?= Date: Fri, 19 Dec 2025 13:05:01 +0100 Subject: [PATCH 2/2] wip --- .../baseapi/expectation/onallevent/ExpectationIT.java | 6 ++++-- .../periodicclean/PeriodicCleanerExpectationIT.java | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/expectation/onallevent/ExpectationIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/expectation/onallevent/ExpectationIT.java index 1a8d00d802..ff1d683cc8 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/expectation/onallevent/ExpectationIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/expectation/onallevent/ExpectationIT.java @@ -30,11 +30,13 @@ @Sample( tldr = "Basic Expectation Pattern with AllEvents Trigger", - description = """ + description = + """ Demonstrates the basic expectation pattern using ExpectationManager with triggerReconcilerOnAllEvents = true. This pattern allows reconcilers to wait for specific conditions to be met (like a Deployment having 3 ready replicas) before proceeding with status updates. The test shows both successful expectation fulfillment and timeout handling. - Requires @ControllerConfiguration(triggerReconcilerOnAllEvents = true) for proper operation.""") + Requires @ControllerConfiguration(triggerReconcilerOnAllEvents = true) for proper operation.\ + """) class ExpectationIT { public static final String TEST_1 = "test1"; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/expectation/periodicclean/PeriodicCleanerExpectationIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/expectation/periodicclean/PeriodicCleanerExpectationIT.java index 5f3319b677..c616d14050 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/expectation/periodicclean/PeriodicCleanerExpectationIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/expectation/periodicclean/PeriodicCleanerExpectationIT.java @@ -30,11 +30,13 @@ @Sample( tldr = "Expectation Pattern with Periodic Cleanup", - description = """ + description = + """ Demonstrates the PeriodicCleanerExpectationManager pattern which provides automatic cleanup of stale expectations. This pattern works without requiring @ControllerConfiguration(triggerReconcilerOnAllEvents = true) and automatically cleans up stale expectations periodically (default: 1 minute). This is ideal for 'set and forget' scenarios where - you want the same expectation API and functionality as the regular ExpectationManager but with automatic lifecycle management.""") + you want the same expectation API and functionality as the regular ExpectationManager but with automatic lifecycle management.\ + """) class PeriodicCleanerExpectationIT { public static final String TEST_1 = "test1";