@@ -11,6 +11,7 @@ import (
1111 "github.com/riverqueue/river/internal/jobcompleter"
1212 "github.com/riverqueue/river/internal/jobexecutor"
1313 "github.com/riverqueue/river/internal/maintenance"
14+ "github.com/riverqueue/river/internal/pluginconfig"
1415 "github.com/riverqueue/river/internal/pluginlookup"
1516 "github.com/riverqueue/river/internal/riverplugin"
1617 "github.com/riverqueue/river/riverdriver"
@@ -147,9 +148,13 @@ func (w *Worker[T, TTx]) workJob(ctx context.Context, tb testing.TB, tx TTx, job
147148 completer := jobcompleter .NewInlineCompleter (archetype , w .config .Schema , exec , w .client .Pilot (), subscribeCh )
148149
149150 var (
150- configuredMiddleware = middlewareFromConfig (w .config )
151- plugins = append (riverplugin .DefaultPlugins (), w .config .Plugins ... )
152- allPlugins = pluginlookup .NormalizePlugins (
151+ configuredMiddleware = pluginconfig .Middleware (
152+ w .config .Middleware , //nolint:staticcheck // Bridge legacy middleware into the test worker's unified plugin path.
153+ w .config .JobInsertMiddleware , //nolint:staticcheck // Bridge legacy middleware into the test worker's unified plugin path.
154+ w .config .WorkerMiddleware , //nolint:staticcheck // Bridge legacy middleware into the test worker's unified plugin path.
155+ )
156+ plugins = append (riverplugin .DefaultPlugins (), w .config .Plugins ... )
157+ allPlugins = pluginlookup .NormalizePlugins (
153158 w .config .Hooks , //nolint:staticcheck // Bridge legacy Hooks into the test worker's unified plugin path.
154159 configuredMiddleware ,
155160 plugins ,
@@ -238,36 +243,6 @@ func (w *Worker[T, TTx]) workJob(ctx context.Context, tb testing.TB, tx TTx, job
238243 panic ("unreachable" )
239244}
240245
241- //nolint:staticcheck
242- func middlewareFromConfig (config * river.Config ) []rivertype.Middleware {
243- middleware := make ([]rivertype.Middleware , 0 ,
244- len (config .Middleware )+ len (config .JobInsertMiddleware )+ len (config .WorkerMiddleware ))
245- middleware = append (middleware , config .Middleware ... )
246-
247- for _ , jobInsertMiddleware := range config .JobInsertMiddleware {
248- middleware = append (middleware , jobInsertMiddleware )
249- }
250-
251- outerLoop:
252- for _ , workerMiddleware := range config .WorkerMiddleware {
253- // Don't add the middleware if it also implements JobInsertMiddleware
254- // and the instance has been added to config.JobInsertMiddleware. This
255- // is a hedge to make sure we don't accidentally double add middleware
256- // as we've converted over to the unified config.Middleware setting.
257- if workerMiddlewareAsJobInsertMiddleware , ok := workerMiddleware .(rivertype.JobInsertMiddleware ); ok {
258- for _ , jobInsertMiddleware := range config .JobInsertMiddleware {
259- if workerMiddlewareAsJobInsertMiddleware == jobInsertMiddleware {
260- continue outerLoop
261- }
262- }
263- }
264-
265- middleware = append (middleware , workerMiddleware )
266- }
267-
268- return middleware
269- }
270-
271246// WorkResult is the result of working a job in the test Worker.
272247type WorkResult struct {
273248 // EventKind is the kind of event that occurred following execution.
0 commit comments