package artifactfetch import ( "context" "encoding/json" "testing" "time" "knowledge-governance/internal/jobs" ) type filteredStore struct{} func (filteredStore) LoadArtifactFetchManifest(context.Context, string, string) (Manifest, error) { return Manifest{}, ErrManifestFiltered } func (filteredStore) MarkArtifactFetched(context.Context, string, string, int64, string, string, bool, time.Time) error { return nil } func (filteredStore) MarkArtifactFetchMissing(context.Context, string, string, time.Time) error { return nil } func (filteredStore) MarkArtifactFetchFailed(context.Context, string, string, string, time.Time) error { return nil } type panicRunner struct{} func (panicRunner) Run(context.Context, Manifest) (Result, error) { panic("filtered artifacts must not start a source fetch") } func TestHandlerCompletesFilteredArtifactWithoutRunningFetcher(t *testing.T) { handler, err := NewHandler(Config{Store: filteredStore{}, Runner: panicRunner{}}) if err != nil { t.Fatal(err) } payload, _ := json.Marshal(Request{ConnectionID: "conn-1", NodeID: "node-1", VersionID: "version-1"}) if err := handler.Handle(context.Background(), jobs.Job{Payload: payload}); err != nil { t.Fatalf("Handle() error = %v", err) } }