Files
silo-server/internal/taskmanager/worker_test.go
T
Quick ee54942b01 fix(metadata): break duplicate provider candidate ties
- Score candidate metadata completeness and auto-match the richer duplicate when title/year/type tie
- Enrich near-duplicate candidates via the provider chain before initial match selection
- Seed both movie and series match queues for mixed-type libraries and wait for TV queue settle
- Add taskmanager worker test coverage and a plan doc for the tie-breaker work
2026-05-26 20:07:43 -04:00

49 lines
1.6 KiB
Go

package taskmanager
import (
"context"
"testing"
"time"
)
type testTask struct{}
func (testTask) Key() string { return "test" }
func (testTask) Name() string { return "test" }
func (testTask) Description() string { return "test" }
func (testTask) Category() TaskCategory { return TaskCategorySystem }
func (testTask) IsHidden() bool { return false }
func (testTask) DefaultTriggers() []TriggerConfig { return nil }
func (testTask) Execute(context.Context, ProgressReporter) error { return nil }
type testTrigger struct {
ch chan struct{}
}
func newTestTrigger(TriggerConfig) Trigger {
return &testTrigger{ch: make(chan struct{}, 1)}
}
func (t *testTrigger) Start(*ExecutionResult) {
t.ch <- struct{}{}
}
func (t *testTrigger) Stop() {}
func (t *testTrigger) NextRunTime() time.Time { return time.Time{} }
func (t *testTrigger) Config() TriggerConfig { return TriggerConfig{} }
func (t *testTrigger) C() <-chan struct{} { return t.ch }
func TestInitialSetTriggersDoesNotMarkTriggerChanged(t *testing.T) {
worker := newTaskWorker(testTask{}, nil)
worker.setTriggers([]TriggerConfig{{Type: TriggerTypeInterval, IntervalMs: 1}}, newTestTrigger, nil, false)
if worker.triggerChanged.Load() {
t.Fatal("initial trigger setup should not mark triggers changed")
}
select {
case <-worker.triggerUpdate:
t.Fatal("initial trigger setup should not queue a trigger update")
default:
}
}