diff --git a/lambda/handlertrace/trace_test.go b/lambda/handlertrace/trace_test.go new file mode 100644 index 00000000..0c9f93f4 --- /dev/null +++ b/lambda/handlertrace/trace_test.go @@ -0,0 +1,44 @@ +package handlertrace + +import ( + "context" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestTrace(t *testing.T) { + ctx := context.Background() + + requestCall := 0 + responseCall := 0 + + existedContext := context.WithValue(ctx, handlerTraceKey{}, HandlerTrace{ + RequestEvent: func(ctx context.Context, event interface{}) { + requestCall += 1 + }, + ResponseEvent: func(ctx context.Context, event interface{}) { + responseCall += 1 + }, + }) + + trace := HandlerTrace{ + RequestEvent: func(ctx context.Context, event interface{}) { + requestCall += 1 + }, + ResponseEvent: func(ctx context.Context, event interface{}) { + responseCall += 1 + }, + } + + ctxWithTrace := NewContext(existedContext, trace) + traceFromCtx := FromContext(ctxWithTrace) + + traceFromCtx.RequestEvent(ctxWithTrace, nil) + assert.Equal(t, requestCall, 2) + + traceFromCtx.ResponseEvent(ctxWithTrace, nil) + fmt.Println(responseCall) + assert.Equal(t, responseCall, 2) +}