on main help sign in
refactor(skills): make coordinator the sole skill discovery publisher
b8989b9Kieran Klukas
internal/skills/skills.go−2
@@ -289,8 +289,6 @@ func DiscoverWithStates(paths []string) ([]*Skill, []*SkillState) {
289 return strings.Compare(strings.ToLower(a.Name), strings.ToLower(b.Name))
289 return strings.Compare(strings.ToLower(a.Name), strings.ToLower(b.Name))
290 })
290 })
291
291
292− // Publish states as-is; the coordinator will merge and re-sort them later.
293− broker.Publish(pubsub.UpdatedEvent, Event{States: states})
294 return skills, states
292 return skills, states
295}
293}
296
294
internal/skills/skills_test.go+9−27
@@ -1,7 +1,6 @@
1package skills
1package skills
2
2
3import (
3import (
4− "context"
5 "os"
4 "os"
6 "path/filepath"
5 "path/filepath"
7 "strings"
6 "strings"
@@ -216,7 +215,8 @@ func TestSkillValidate(t *testing.T) {
216}
215}
217
216
218func TestDiscover(t *testing.T) {
217func TestDiscover(t *testing.T) {
219− // Not parallel: shares global broker with other Discover tests.
218+ t.Parallel()
219+
220 tmpDir := t.TempDir()
220 tmpDir := t.TempDir()
221
221
222 // Create valid skill 1.
222 // Create valid skill 1.
@@ -248,14 +248,8 @@ description: Name doesn't match directory.
248---
248---
249`), 0o644))
249`), 0o644))
250
250
251− ctx, cancel := context.WithCancel(context.Background())
251+ skills, states := DiscoverWithStates([]string{tmpDir})
252− defer cancel()
253− ch := SubscribeEvents(ctx)
254−
255− skills := Discover([]string{tmpDir})
256
252
257− evt := <-ch
258− states := evt.Payload.States
259 var normalCount int
253 var normalCount int
260 var errorCount int
254 var errorCount int
261 var hasInvalidDir bool
255 var hasInvalidDir bool
@@ -285,32 +279,20 @@ description: Name doesn't match directory.
285}
279}
286
280
287func TestDiscoverEmptyDir(t *testing.T) {
281func TestDiscoverEmptyDir(t *testing.T) {
288− // Not parallel: shares global broker with other Discover tests.
282+ t.Parallel()
289
283
290 tmpDir := t.TempDir()
284 tmpDir := t.TempDir()
291
285
292− ctx, cancel := context.WithCancel(context.Background())
293− defer cancel()
294− ch := SubscribeEvents(ctx)
295−
296− skills := Discover([]string{tmpDir})
286+ skills, states := DiscoverWithStates([]string{tmpDir})
297−
298− evt := <-ch
299− require.Empty(t, evt.Payload.States)
287+ require.Empty(t, states)
300 require.Empty(t, skills)
288 require.Empty(t, skills)
301}
289}
302
290
303func TestDiscoverMissingPath(t *testing.T) {
291func TestDiscoverMissingPath(t *testing.T) {
304− // Not parallel: shares global broker with other Discover tests.
292+ t.Parallel()
305−
306− ctx, cancel := context.WithCancel(context.Background())
307− defer cancel()
308− ch := SubscribeEvents(ctx)
309−
310− skills := Discover([]string{filepath.Join(t.TempDir(), "missing")})
311
293
312− evt := <-ch
294+ skills, states := DiscoverWithStates([]string{filepath.Join(t.TempDir(), "missing")})
313− require.Empty(t, evt.Payload.States)
295+ require.Empty(t, states)
314 require.Empty(t, skills)
296 require.Empty(t, skills)
315}
297}
316
298