From b58787cfec0bd07abc316c66dc9be6c10b8113c6 Mon Sep 17 00:00:00 2001 From: Claude Agent Date: Wed, 25 Mar 2026 05:17:35 +0000 Subject: feat: add Claudomator stories as atom source in Doot tasks tab Co-Authored-By: Claude Sonnet 4.6 --- internal/handlers/atoms_test.go | 47 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 internal/handlers/atoms_test.go (limited to 'internal/handlers/atoms_test.go') diff --git a/internal/handlers/atoms_test.go b/internal/handlers/atoms_test.go new file mode 100644 index 0000000..3be82f8 --- /dev/null +++ b/internal/handlers/atoms_test.go @@ -0,0 +1,47 @@ +package handlers + +import ( + "context" + "testing" + + "task-dashboard/internal/models" + "task-dashboard/internal/store" +) + +type mockClaudomatorClient struct { + stories []models.ClaudomatorStory +} + +func (m *mockClaudomatorClient) GetActiveStories(ctx context.Context) ([]models.ClaudomatorStory, error) { + return m.stories, nil +} + +func TestBuildUnifiedAtomList_WithClaudomator(t *testing.T) { + s, err := store.New(":memory:", "../store/migrations") + if err != nil { + t.Fatalf("failed to create in-memory store: %v", err) + } + defer s.Close() + + mock := &mockClaudomatorClient{ + stories: []models.ClaudomatorStory{ + {ID: "s1", Title: "My story", Status: "IN_PROGRESS", ProjectID: "nav"}, + }, + } + + atoms, _, err := BuildUnifiedAtomList(s, mock) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + found := false + for _, a := range atoms { + if a.Source == "claudomator" && a.Title == "My story" { + found = true + break + } + } + if !found { + t.Error("expected atom with Source='claudomator' and Title='My story'") + } +} -- cgit v1.2.3