▍ humdrum codex / ticktock v0.0.2
license AGPL-3.0

test: cover activitySource config wiring in cmd/ticktock

af7bbc4afed1f810f9a7f411229c46ec9bd286c7
Kevin Kortum <kevinkortum@me.com> · 2026-07-08 12:59

parent ac9707d9

1 files changed

cmd/ticktock/main_test.go +39 −1
@@ -1,6 +1,13 @@
 package main
 
-import "testing"
+import (
+	"reflect"
+	"testing"
+
+	"ticktock/internal/activity"
+	"ticktock/internal/autotrack"
+	"ticktock/internal/config"
+)
 
 func hasCmd(names []string, want string) bool {
 	for _, n := range names {
@@ -49,6 +56,37 @@
 func TestVersionSet(t *testing.T) {
 	if newRootCmd().Version == "" {
 		t.Error("root command should carry a version")
+	}
+}
+
+func TestActivitySourceFromConfig(t *testing.T) {
+	cfg := config.Config{
+		Calendars: config.Calendars{
+			Show: []string{"Work", "Personal"},
+			Hide: []string{"Spam"},
+		},
+	}
+
+	src := activitySource(cfg)
+
+	wantFilter := activity.CalendarFilter{Show: []string{"Work", "Personal"}, Hide: []string{"Spam"}}
+	if !reflect.DeepEqual(src.Filter, wantFilter) {
+		t.Errorf("Filter = %+v, want %+v", src.Filter, wantFilter)
+	}
+
+	if want := autotrack.HelperPath("cal-events"); src.CalBin != want {
+		t.Errorf("CalBin = %q, want %q", src.CalBin, want)
+	}
+
+	wantDir, err := dataDir()
+	if err != nil {
+		t.Fatalf("dataDir() error: %v", err)
+	}
+	if src.DataDir != wantDir {
+		t.Errorf("DataDir = %q, want %q (from dataDir())", src.DataDir, wantDir)
+	}
+	if src.DataDir == "" {
+		t.Error("DataDir is empty; expected a resolvable path on this machine")
 	}
 }