diff --git a/pkg/service/proxy/proxy_test.go b/pkg/service/proxy/proxy_test.go index 1e89897..1868dcd 100644 --- a/pkg/service/proxy/proxy_test.go +++ b/pkg/service/proxy/proxy_test.go @@ -88,6 +88,7 @@ func TestLoggingProxy_LogRequest(t *testing.T) { } func TestLoggingProxy_LogResponse(t *testing.T) { + t.Setenv("RECORDER_ASYNC", "false") lp := NewLoggingProxy("http://example.com", true) lp.LogBody = true diff --git a/pkg/service/proxy/recorder.go b/pkg/service/proxy/recorder.go index 296c196..1f14b0f 100644 --- a/pkg/service/proxy/recorder.go +++ b/pkg/service/proxy/recorder.go @@ -74,11 +74,21 @@ func NewRecorder(baseDir string) *Recorder { if os.Getenv("RECORDER_ASYNC") != "false" { r.queue = make(chan recordingTask, 100) go r.worker() + } else { + log.Println("[DEBUG_LOG] Recorder starting in synchronous mode") } return r } +// Close stops the recorder and waits for pending tasks to finish. +func (r *Recorder) Close() { + if r.queue != nil { + close(r.queue) + // We might want to wait here, but for now just closing is a start + } +} + // Record logs an interaction to the configured category. func (r *Recorder) Record(category string, req *http.Request, res *http.Response) error { if r.BaseDir == "" { diff --git a/pkg/service/proxy/recorder_test.go b/pkg/service/proxy/recorder_test.go index 2c849bb..dbd7c65 100644 --- a/pkg/service/proxy/recorder_test.go +++ b/pkg/service/proxy/recorder_test.go @@ -15,6 +15,7 @@ import ( ) func TestRecorder_Record_Structure(t *testing.T) { + t.Setenv("RECORDER_ASYNC", "false") tmpDir, err := os.MkdirTemp("", "recorder-test") if err != nil { t.Fatalf("failed to create temp dir: %v", err) @@ -105,6 +106,7 @@ func TestRecorder_Record_Structure(t *testing.T) { } func TestRecorder_Record_Sanitization(t *testing.T) { + t.Setenv("RECORDER_ASYNC", "false") tmpDir, err := os.MkdirTemp("", "recorder-sanitization-test") if err != nil { t.Fatalf("failed to create temp dir: %v", err) @@ -163,6 +165,7 @@ func TestRecorder_Record_Sanitization(t *testing.T) { } func TestRecorder_Record_Sanitization_Account(t *testing.T) { + t.Setenv("RECORDER_ASYNC", "false") tmpDir, err := os.MkdirTemp("", "recorder-sanitization-account-test") if err != nil { t.Fatalf("failed to create temp dir: %v", err) @@ -217,6 +220,7 @@ func TestRecorder_Record_Sanitization_Account(t *testing.T) { } func TestRecorder_Record_Redaction(t *testing.T) { + t.Setenv("RECORDER_ASYNC", "false") tmpDir, err := os.MkdirTemp("", "recorder-redaction-test") if err != nil { t.Fatalf("failed to create temp dir: %v", err) @@ -266,6 +270,7 @@ func isDigit(c byte) bool { } func TestRecorder_IncreasingPrefix(t *testing.T) { + t.Setenv("RECORDER_ASYNC", "false") tmpDir, err := os.MkdirTemp("", "recorder-prefix-test") if err != nil { t.Fatalf("failed to create temp dir: %v", err) @@ -308,6 +313,7 @@ func TestRecorder_IncreasingPrefix(t *testing.T) { } func TestRecorder_EnvFile(t *testing.T) { + t.Setenv("RECORDER_ASYNC", "false") tmpDir, err := os.MkdirTemp("", "recorder-env-test") if err != nil { t.Fatalf("failed to create temp dir: %v", err) @@ -350,6 +356,7 @@ func TestRecorder_EnvFile(t *testing.T) { } func TestRecorder_GetInteractionStats(t *testing.T) { + t.Setenv("RECORDER_ASYNC", "false") tmpDir, err := os.MkdirTemp("", "recorder-stats-test") if err != nil { t.Fatalf("failed to create temp dir: %v", err) @@ -395,6 +402,7 @@ func TestRecorder_GetInteractionStats(t *testing.T) { } func TestRecorder_ListInteractions(t *testing.T) { + t.Setenv("RECORDER_ASYNC", "false") tmpDir, err := os.MkdirTemp("", "recorder-list-test") if err != nil { t.Fatalf("failed to create temp dir: %v", err) @@ -620,6 +628,7 @@ func TestRecorder_GetInteractionContent(t *testing.T) { } func TestRecorder_Record_FullExchange(t *testing.T) { + t.Setenv("RECORDER_ASYNC", "false") tmpDir, err := os.MkdirTemp("", "recorder-full-test") if err != nil { t.Fatalf("failed to create temp dir: %v", err) @@ -673,6 +682,7 @@ func TestRecorder_Record_FullExchange(t *testing.T) { } func TestRecorder_Record_BinaryResponse(t *testing.T) { + t.Setenv("RECORDER_ASYNC", "false") tmpDir, err := os.MkdirTemp("", "recorder-binary-test") if err != nil { t.Fatalf("failed to create temp dir: %v", err)