diff options
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/mediaplayer/main_test.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/cmd/mediaplayer/main_test.go b/cmd/mediaplayer/main_test.go index 08b9d92..e01cff9 100644 --- a/cmd/mediaplayer/main_test.go +++ b/cmd/mediaplayer/main_test.go @@ -1,9 +1,12 @@ package main import ( + "bytes" + "io" "log/slog" "os" "path/filepath" + "strings" "testing" "time" @@ -45,3 +48,39 @@ func TestGCWorkerWiring(t *testing.T) { w.Start() w.Stop() // must not panic even after interacting with real store } + +func TestRun_VersionFlag(t *testing.T) { + old := os.Stdout + r, w, _ := os.Pipe() + os.Stdout = w + + err := run([]string{"-version"}) + w.Close() + os.Stdout = old + + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + var buf bytes.Buffer + io.Copy(&buf, r) + out := strings.TrimSpace(buf.String()) + if out != internal.Version { + t.Fatalf("expected %q, got %q", internal.Version, out) + } +} + +func TestRun_InvalidFlag(t *testing.T) { + err := run([]string{"-invalidflag"}) + if err == nil { + t.Fatal("expected error for invalid flag") + } +} + +func TestRun_InvalidConfig(t *testing.T) { + t.Setenv("PORT", "invalid") + err := run([]string{}) + if err == nil { + t.Fatal("expected error for invalid PORT") + } +} |
