MCPcopy Create free account
hub / github.com/MiniCodeMonkey/chief / TestWatcherDetectsInProgressChange

Function TestWatcherDetectsInProgressChange

internal/prd/watcher_test.go:113–150  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

111}
112
113func TestWatcherDetectsInProgressChange(t *testing.T) {
114 tmpDir := t.TempDir()
115 prdPath := createTestPRDMd(t, tmpDir, []UserStory{
116 {ID: "US-001", Title: "Test Story", Passes: false, InProgress: false},
117 })
118
119 watcher, err := NewWatcher(prdPath)
120 if err != nil {
121 t.Fatalf("Failed to create watcher: %v", err)
122 }
123 defer watcher.Stop()
124
125 if err := watcher.Start(); err != nil {
126 t.Fatalf("Failed to start watcher: %v", err)
127 }
128
129 time.Sleep(100 * time.Millisecond)
130
131 // Modify the file - change inProgress status
132 if err := SetStoryStatus(prdPath, "US-001", "in-progress"); err != nil {
133 t.Fatalf("Failed to update test PRD: %v", err)
134 }
135
136 select {
137 case event := <-watcher.Events():
138 if event.Error != nil {
139 t.Fatalf("Unexpected error: %v", event.Error)
140 }
141 if event.PRD == nil {
142 t.Fatal("Expected PRD in event")
143 }
144 if !event.PRD.UserStories[0].InProgress {
145 t.Error("Expected story to have inProgress: true")
146 }
147 case <-time.After(2 * time.Second):
148 t.Fatal("Timeout waiting for file change event")
149 }
150}
151
152func TestWatcherHandlesFileNotFound(t *testing.T) {
153 tmpDir := t.TempDir()

Callers

nothing calls this directly

Calls 6

StopMethod · 0.95
StartMethod · 0.95
EventsMethod · 0.95
createTestPRDMdFunction · 0.85
NewWatcherFunction · 0.85
SetStoryStatusFunction · 0.85

Tested by

no test coverage detected