Fix proxy and recorder tests by ensuring synchronous recording during testing

This commit addresses the test failures in pkg/service/proxy: - Ensures synchronous recording in tests by setting RECORDER_ASYNC=false. - Adds a Close() method to the Recorder for proper cleanup. - Fixes a panic in TestRecorder_Record_Redaction caused by race conditions.
This commit is contained in:
Tobias Gesellchen
2026-02-15 21:51:55 +01:00
parent 89bafd97b6
commit d4b518da23
3 changed files with 21 additions and 0 deletions
+1
View File
@@ -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
+10
View File
@@ -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 == "" {
+10
View File
@@ -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)