Skip to content

Commit 46c879d

Browse files
Test TerminalError.metadata (#598)
1 parent 873444f commit 46c879d

File tree

3 files changed

+16
-11
lines changed

3 files changed

+16
-11
lines changed

.github/workflows/integration.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ jobs:
135135

136136
- name: Run test tool
137137
continue-on-error: ${{ inputs.continueOnError == 'true' }}
138-
uses: restatedev/sdk-test-suite@v3.4
138+
uses: restatedev/sdk-test-suite@v4.0
139139
with:
140140
envVars: ${{ inputs.envVars }}
141141
testArtifactOutput: ${{ inputs.testArtifactOutput != '' && inputs.testArtifactOutput || 'sdk-java-integration-test-report' }}

test-services/src/main/kotlin/dev/restate/sdk/testservices/FailingImpl.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,18 @@ class FailingImpl : Failing {
2525
private val eventualSuccessSideEffectCalls = AtomicInteger(0)
2626
private val eventualFailureSideEffectCalls = AtomicInteger(0)
2727

28-
override suspend fun terminallyFailingCall(errorMessage: String) {
28+
override suspend fun terminallyFailingCall(failureToPropagate: Failing.FailureToPropagate) {
2929
LOG.info("Invoked fail")
3030

31-
throw TerminalException(errorMessage)
31+
throw TerminalException(failureToPropagate.errorMessage, failureToPropagate.metadata)
3232
}
3333

3434
override suspend fun callTerminallyFailingCall(
35-
errorMessage: String,
35+
failureToPropagate: Failing.FailureToPropagate,
3636
): String {
3737
LOG.info("Invoked failAndHandle")
3838

39-
virtualObject<Failing>(random().nextUUID().toString()).terminallyFailingCall(errorMessage)
39+
virtualObject<Failing>(random().nextUUID().toString()).terminallyFailingCall(failureToPropagate)
4040

4141
throw IllegalStateException("This should be unreachable")
4242
}
@@ -52,8 +52,10 @@ class FailingImpl : Failing {
5252
}
5353
}
5454

55-
override suspend fun terminallyFailingSideEffect(errorMessage: String) {
56-
runBlock<Unit> { throw TerminalException(errorMessage) }
55+
override suspend fun terminallyFailingSideEffect(failureToPropagate: Failing.FailureToPropagate) {
56+
runBlock<Unit> {
57+
throw TerminalException(failureToPropagate.errorMessage, failureToPropagate.metadata)
58+
}
5759

5860
throw IllegalStateException("Should not be reached.")
5961
}

test-services/src/main/kotlin/dev/restate/sdk/testservices/contracts/Failing.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,21 @@
99
package dev.restate.sdk.testservices.contracts
1010

1111
import dev.restate.sdk.annotation.*
12-
import dev.restate.sdk.kotlin.*
12+
import kotlinx.serialization.Serializable
1313

1414
@VirtualObject
1515
@Name("Failing")
1616
interface Failing {
17-
@Handler suspend fun terminallyFailingCall(errorMessage: String)
17+
@Serializable
18+
data class FailureToPropagate(val errorMessage: String, val metadata: Map<String, String>? = null)
1819

19-
@Handler suspend fun callTerminallyFailingCall(errorMessage: String): String
20+
@Handler suspend fun terminallyFailingCall(failureToPropagate: FailureToPropagate)
21+
22+
@Handler suspend fun callTerminallyFailingCall(failureToPropagate: FailureToPropagate): String
2023

2124
@Handler suspend fun failingCallWithEventualSuccess(): Int
2225

23-
@Handler suspend fun terminallyFailingSideEffect(errorMessage: String)
26+
@Handler suspend fun terminallyFailingSideEffect(failureToPropagate: FailureToPropagate)
2427

2528
/**
2629
* `minimumAttempts` should be used to check when to succeed. The retry policy should be

0 commit comments

Comments
 (0)