Skip to content

Commit fbe288a

Browse files
fix(test): match xrayErrorCause by reflected type, not type name
Go 1.27 makes encoding/json's RawMessage an alias for jsontext.Value, so the runtime type name is now "jsontext.Value". testify's AnythingOfType matches on that name string, so the three SendInvokeFinishedEvent expectations stopped matching and the mock panicked on an unexpected call: Diff: 1: FAIL: type json.RawMessage != type Value - (jsontext.Value=null) Switch to mock.IsType, which resolves the type through reflection and so matches whether or not the alias is in play. This has broken TestRuntimeErrorFailure_ErrorWhileError and left the localstack branch red since the go directive bump to 1.27.0 in #122.
1 parent 7ec133c commit fbe288a

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

internal/lambda-managed-instances/invoke/running_invoke_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ func mockMetricsBeforeResponse(mocks *runningInvokeMocks) {
9999
mocks.metrics.On("TriggerStartRequest")
100100
mocks.metrics.On("SendInvokeStartEvent", mock.AnythingOfType("*interop.TracingCtx")).Return(nil)
101101
mocks.metrics.On("TriggerSentRequest", mock.AnythingOfType("int64"), mock.AnythingOfType("time.Duration"), mock.AnythingOfType("time.Duration")).Return()
102-
mocks.metrics.On("SendInvokeFinishedEvent", mock.AnythingOfType("*interop.TracingCtx"), mock.AnythingOfType("json.RawMessage")).Return(nil)
102+
mocks.metrics.On("SendInvokeFinishedEvent", mock.AnythingOfType("*interop.TracingCtx"), mock.IsType(json.RawMessage(nil))).Return(nil)
103103
}
104104

105105
func checkRunningInvokeMockExpectations(t *testing.T, mocks *runningInvokeMocks) {
@@ -248,7 +248,7 @@ func TestRuntimeErrorFailure_SendInvokeToRuntime_Error(t *testing.T) {
248248
mocks.metrics.On("TriggerStartRequest")
249249
mocks.metrics.On("SendInvokeStartEvent", mock.AnythingOfType("*interop.TracingCtx")).Return(nil)
250250
mocks.metrics.On("TriggerSentResponse", false, err, mock.Anything, 0).Return()
251-
mocks.metrics.On("SendInvokeFinishedEvent", mock.AnythingOfType("*interop.TracingCtx"), mock.AnythingOfType("json.RawMessage")).Return(nil)
251+
mocks.metrics.On("SendInvokeFinishedEvent", mock.AnythingOfType("*interop.TracingCtx"), mock.IsType(json.RawMessage(nil))).Return(nil)
252252

253253
invokeErr := runInvoke.RunInvokeAndSendResult(mocks.ctx, &mocks.staticData, &mocks.eaInvokeRequest, &mocks.metrics)
254254
assert.Error(t, invokeErr)
@@ -280,7 +280,7 @@ func TestRuntimeErrorFailure_SendInvokeToRuntime_Timeout(t *testing.T) {
280280
mocks.metrics.On("TriggerStartRequest")
281281
mocks.metrics.On("SendInvokeStartEvent", mock.AnythingOfType("*interop.TracingCtx")).Return(nil)
282282
mocks.metrics.On("TriggerSentResponse", false, err, mock.Anything, 0).Return()
283-
mocks.metrics.On("SendInvokeFinishedEvent", mock.AnythingOfType("*interop.TracingCtx"), mock.AnythingOfType("json.RawMessage")).Return(nil)
283+
mocks.metrics.On("SendInvokeFinishedEvent", mock.AnythingOfType("*interop.TracingCtx"), mock.IsType(json.RawMessage(nil))).Return(nil)
284284

285285
invokeErr := runInvoke.RunInvokeAndSendResult(mocks.ctx, &mocks.staticData, &mocks.eaInvokeRequest, &mocks.metrics)
286286
assert.Error(t, invokeErr)

0 commit comments

Comments
 (0)