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")
}
}