diff options
| author | Paul Buetow <paul@buetow.org> | 2025-10-03 19:53:04 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-10-03 19:53:04 +0300 |
| commit | dba07073652cb1bbad58d2e82329d07eefe3c12d (patch) | |
| tree | 79df1afd3837b5efc46880eab9adf58381293dfc /internal/app/loader_test.go | |
| parent | 0ae149babf5ddf5eda22778b9e5e81567a180561 (diff) | |
Add tag editing UI and responsive layoutv0.2.2
Diffstat (limited to 'internal/app/loader_test.go')
| -rw-r--r-- | internal/app/loader_test.go | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/internal/app/loader_test.go b/internal/app/loader_test.go index 538bca0..843e471 100644 --- a/internal/app/loader_test.go +++ b/internal/app/loader_test.go @@ -6,6 +6,8 @@ import ( "runtime" "testing" "time" + + "yoga/internal/tags" ) func TestCollectVideoPathsDetectsMP4(t *testing.T) { @@ -70,10 +72,13 @@ func TestLoadVideosWithCache(t *testing.T) { _ = cache.Record(video, info, time.Minute) progress := &loadProgress{} progress.Reset() - videos, pending, err := loadVideos(dir, cache, progress) + videos, pending, tagErr, err := loadVideos(dir, cache, progress) if err != nil { t.Fatalf("loadVideos: %v", err) } + if tagErr != nil { + t.Fatalf("unexpected tag error: %v", tagErr) + } if len(videos) != 1 || len(pending) != 0 { t.Fatalf("expected cached video without pending: videos=%d pending=%d", len(videos), len(pending)) } @@ -82,6 +87,28 @@ func TestLoadVideosWithCache(t *testing.T) { } } +func TestLoadVideosReadsTags(t *testing.T) { + dir := t.TempDir() + videoPath := filepath.Join(dir, "session.mp4") + if err := os.WriteFile(videoPath, []byte("x"), 0o644); err != nil { + t.Fatalf("write video: %v", err) + } + metaPath := tags.PathFor(videoPath) + if err := os.WriteFile(metaPath, []byte("[\"calm\", \"focus\"]"), 0o644); err != nil { + t.Fatalf("write tags: %v", err) + } + videos, _, tagErr, err := loadVideos(dir, nil, nil) + if err != nil { + t.Fatalf("loadVideos: %v", err) + } + if tagErr != nil { + t.Fatalf("unexpected tag error: %v", tagErr) + } + if len(videos) != 1 || len(videos[0].Tags) != 2 { + t.Fatalf("expected tags loaded, got %#v", videos) + } +} + func TestProbeDurationsCmdHandlesMissingBinary(t *testing.T) { cmd := probeDurationsCmd("/no/such/file.mp4", nil) msg := cmd() @@ -152,10 +179,13 @@ func TestLoadVideosHandlesStatError(t *testing.T) { if err := os.Symlink(filepath.Join(dir, "missing.mp4"), broken); err != nil { t.Skipf("symlink unsupported: %v", err) } - videos, _, err := loadVideos(dir, nil, nil) + videos, _, tagErr, err := loadVideos(dir, nil, nil) if err != nil { t.Fatalf("loadVideos: %v", err) } + if tagErr != nil { + t.Fatalf("unexpected tag error: %v", tagErr) + } if len(videos) != 1 || videos[0].Err == nil { t.Fatalf("expected stat error recorded, got %+v", videos) } |
