Ctrl K
ComunidadGuías…

internal/store/recording_test.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package store

import "testing"

func TestATabRemembersWhatItRecords(t *testing.T) {
	store := openHistory(t, dbPath(t))
	tabs := store.Tabs()
	err := tabs.Remember(t.Context(), Tab{ID: p1, Context: "p-mk1", Seen: noon})
	if err != nil {
		t.Fatalf("remember: %v", err)
	}

	recordErr := tabs.Recording(t.Context(), p1, "workloads")
	if recordErr != nil {
		t.Fatalf("recording: %v", recordErr)
	}

	found, readErr := tabs.All(t.Context())
	if readErr != nil {
		t.Fatalf("all: %v", readErr)
	}
	if len(found) != 1 || found[0].Timeline != "workloads" {
		t.Fatalf("the tab came back as %+v", found)
	}
}

func TestATabRecordsNothingUntilItIsAskedTo(t *testing.T) {
	store := openHistory(t, dbPath(t))
	tabs := store.Tabs()
	err := tabs.Remember(t.Context(), Tab{ID: p1, Context: "p-mk1", Seen: noon})
	if err != nil {
		t.Fatalf("remember: %v", err)
	}

	found, readErr := tabs.All(t.Context())
	if readErr != nil {
		t.Fatalf("all: %v", readErr)
	}
	if found[0].Timeline != "" {
		t.Fatalf("a new tab was recording %q", found[0].Timeline)
	}
}

func TestReopeningATabKeepsWhatItRecords(t *testing.T) {
	store := openHistory(t, dbPath(t))
	tabs := store.Tabs()
	err := tabs.Remember(t.Context(), Tab{ID: p1, Context: "p-mk1", Seen: noon})
	if err != nil {
		t.Fatalf("remember: %v", err)
	}
	recordErr := tabs.Recording(t.Context(), p1, "wide")
	if recordErr != nil {
		t.Fatalf("recording: %v", recordErr)
	}

	againErr := tabs.Remember(t.Context(), Tab{ID: p1, Context: "p-mk1", Seen: noon.Add(1)})
	if againErr != nil {
		t.Fatalf("remember: %v", againErr)
	}

	found, readErr := tabs.All(t.Context())
	if readErr != nil {
		t.Fatalf("all: %v", readErr)
	}
	if found[0].Timeline != "wide" {
		t.Fatalf("reopening lost the setting: %+v", found[0])
	}
}

func TestRecordingOnAStoreThatCouldNotOpenIsQuiet(t *testing.T) {
	store := unavailable("nowhere to keep history")

	err := store.Tabs().Recording(t.Context(), p1, "workloads")
	if err != nil {
		t.Fatalf("recording: %v", err)
	}
}