capsule AI-native Unix-like composition layer

src/server/internal/recording/recorder_test.go

1,301 bytes · 48 lines · capsule://quake0day/[email protected] raw on github

package recording

import (
	"os"
	"path/filepath"
	"testing"

	"github.com/cyberverse/server/internal/config"
)

func TestSaveTranscriptWritesTurnTextFile(t *testing.T) {
	tmpDir := t.TempDir()
	recorder := NewVideoRecorder(config.RecordingConfig{
		Enabled:   true,
		OutputDir: tmpDir,
	})

	const transcript = "豆包回复文本"
	if err := recorder.SaveTranscript("session-1", "turn1", transcript); err != nil {
		t.Fatalf("SaveTranscript returned error: %v", err)
	}

	got, err := os.ReadFile(filepath.Join(tmpDir, "session-1", "turn1.txt"))
	if err != nil {
		t.Fatalf("ReadFile returned error: %v", err)
	}
	if string(got) != transcript {
		t.Fatalf("expected transcript %q, got %q", transcript, string(got))
	}
}

func TestSaveTranscriptUsesAbsoluteSessionDir(t *testing.T) {
	tmpDir := t.TempDir()
	sessionDir := filepath.Join(tmpDir, "sessions", "session-abs")
	recorder := NewVideoRecorder(config.RecordingConfig{
		Enabled:   true,
		OutputDir: filepath.Join(tmpDir, "ignored"),
	})

	if err := recorder.SaveTranscript(sessionDir, "turn2", "absolute transcript"); err != nil {
		t.Fatalf("SaveTranscript returned error: %v", err)
	}

	if _, err := os.Stat(filepath.Join(sessionDir, "turn2.txt")); err != nil {
		t.Fatalf("expected transcript file in absolute session dir: %v", err)
	}
}