From eca890ff342e8560a24a389cf718f86ffade8111 Mon Sep 17 00:00:00 2001 From: Valery Piashchynski Date: Wed, 15 Jul 2026 20:03:21 +0200 Subject: [PATCH 1/2] chore(tests): drive RPC over goridge net/rpc again Signed-off-by: Valery Piashchynski --- tests/go.mod | 28 ++++++++----------- tests/go.sum | 58 +++++++++++++++------------------------- tests/helpers/helpers.go | 44 +++++++++++++++--------------- tests/jobs_nsq_test.go | 3 +-- 4 files changed, 56 insertions(+), 77 deletions(-) diff --git a/tests/go.mod b/tests/go.mod index 8517099..daf71b1 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -5,31 +5,29 @@ go 1.26 toolchain go1.26.3 require ( - connectrpc.com/connect v1.20.0 github.com/Shopify/toxiproxy/v2 v2.12.0 github.com/google/uuid v1.6.0 github.com/nsqio/go-nsq v1.1.0 - github.com/roadrunner-server/api-go/v6 v6.0.0-beta.12 + github.com/roadrunner-server/api-go/v6 v6.0.0-beta.13 github.com/roadrunner-server/api-plugins/v6 v6.0.0-beta.2 github.com/roadrunner-server/config/v6 v6.0.0-beta.3 github.com/roadrunner-server/endure/v2 v2.6.2 - github.com/roadrunner-server/informer/v6 v6.0.0-beta.2 - github.com/roadrunner-server/jobs/v6 v6.0.0-beta.7 + github.com/roadrunner-server/goridge/v4 v4.0.0-beta.3 + github.com/roadrunner-server/informer/v6 v6.0.0-beta.3 + github.com/roadrunner-server/jobs/v6 v6.0.0-beta.8 github.com/roadrunner-server/logger/v6 v6.0.0-beta.3 github.com/roadrunner-server/nsq/v6 v6.0.0 - github.com/roadrunner-server/resetter/v6 v6.0.0-beta.3 - github.com/roadrunner-server/rpc/v6 v6.0.0-beta.4 + github.com/roadrunner-server/resetter/v6 v6.0.0-beta.4 + github.com/roadrunner-server/rpc/v6 v6.0.0-beta.5 github.com/roadrunner-server/server/v6 v6.0.0-beta.6 github.com/stretchr/testify v1.11.1 go.opentelemetry.io/otel/sdk v1.44.0 go.opentelemetry.io/otel/trace v1.44.0 - golang.org/x/net v0.55.0 google.golang.org/genproto v0.0.0-20260526163538-3dc84a4a5aaa google.golang.org/protobuf v1.36.11 ) require ( - connectrpc.com/grpcreflect v1.3.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect @@ -48,11 +46,10 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_golang v1.23.2 // indirect github.com/prometheus/client_model v0.6.2 // indirect - github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.1 // indirect + github.com/prometheus/common v0.70.0 // indirect + github.com/prometheus/procfs v0.21.1 // indirect github.com/roadrunner-server/errors v1.5.0 // indirect github.com/roadrunner-server/events v1.0.1 // indirect - github.com/roadrunner-server/goridge/v4 v4.0.0-beta.2 // indirect github.com/roadrunner-server/pool/v2 v2.0.0-beta.1 // indirect github.com/roadrunner-server/priority_queue v1.0.6 // indirect github.com/roadrunner-server/tcplisten v1.5.2 // indirect @@ -72,13 +69,10 @@ require ( go.opentelemetry.io/otel/metric v1.44.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - go.yaml.in/yaml/v2 v2.4.4 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/sync v0.20.0 // indirect - golang.org/x/sys v0.45.0 // indirect - golang.org/x/text v0.37.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68 // indirect - google.golang.org/grpc v1.81.1 // indirect + golang.org/x/sync v0.22.0 // indirect + golang.org/x/sys v0.47.0 // indirect + golang.org/x/text v0.38.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/tests/go.sum b/tests/go.sum index ecd182d..4104f72 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -1,7 +1,3 @@ -connectrpc.com/connect v1.20.0 h1:6TNDAB+WeNd2uolWNlYczB5E0KNNaVMNUEx8JEUsPmQ= -connectrpc.com/connect v1.20.0/go.mod h1:A2ygJrukXwWy32vkCAAHNVguZrqZ+jeZ9rGRnGR4dN4= -connectrpc.com/grpcreflect v1.3.0 h1:Y4V+ACf8/vOb1XOc251Qun7jMB75gCUNw6llvB9csXc= -connectrpc.com/grpcreflect v1.3.0/go.mod h1:nfloOtCS8VUQOQ1+GTdFzVg2CJo4ZGaat8JIovCtDYs= github.com/Shopify/toxiproxy/v2 v2.12.0 h1:d1x++lYZg/zijXPPcv7PH0MvHMzEI5aX/YuUi/Sw+yg= github.com/Shopify/toxiproxy/v2 v2.12.0/go.mod h1:R9Z38Pw6k2cGZWXHe7tbxjGW9azmY1KbDQJ1kd+h7Tk= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -26,8 +22,6 @@ github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro= github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= -github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= -github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs= github.com/golang/snappy v1.0.0/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -57,12 +51,12 @@ github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= -github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= -github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= -github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= -github.com/roadrunner-server/api-go/v6 v6.0.0-beta.12 h1:FcRcCvW9OfQvH45SFsI21VoHpOOov56OvOSnO4UKvXs= -github.com/roadrunner-server/api-go/v6 v6.0.0-beta.12/go.mod h1:prGWJ2GoF5YD5PIG7Tb6VKulU3bWoFwr9DCwgxheb80= +github.com/prometheus/common v0.70.0 h1:bcpru3tWPVnxGnETLgOV5jbp/JRXgYEyv65CuBLAMMI= +github.com/prometheus/common v0.70.0/go.mod h1:S/SFasQmgGiYH6C81LKCtYa8QACgthGg5zxL2udV7SY= +github.com/prometheus/procfs v0.21.1 h1:GljZCt+zSTS+NZq88cyQ1LjZ+RCHp3uVuabBWA5+OJI= +github.com/prometheus/procfs v0.21.1/go.mod h1:aB55Cww9pdSJVHk0hUf0inxWyyjPogFIjmHKYgMKmtY= +github.com/roadrunner-server/api-go/v6 v6.0.0-beta.13 h1:BAV1aKkRp51C1OXDfEYZXgfrXqn4O7bpr6Z/m5otwd8= +github.com/roadrunner-server/api-go/v6 v6.0.0-beta.13/go.mod h1:Y4rsabWjr4Y10Jg6H8J5NDitQqlnXmGhCdgR+zyLYkI= github.com/roadrunner-server/api-plugins/v6 v6.0.0-beta.2 h1:GqsZzWQ5jMXRF1O/b8IqFz9PLpS7Ui0K4OyACLql2MI= github.com/roadrunner-server/api-plugins/v6 v6.0.0-beta.2/go.mod h1:2v4yUK5Kvbvq8C3IkDoBkuamq9h+7i/JLjyf7k1j5JM= github.com/roadrunner-server/config/v6 v6.0.0-beta.3 h1:G0EUzJ6Yw4UnleM6BhnOBbYPXKDHRmCJiGhC3nXDBwI= @@ -73,22 +67,22 @@ github.com/roadrunner-server/errors v1.5.0 h1:unG7LKIZrSzkCCF3YLRLA5VyqE0KKomofX github.com/roadrunner-server/errors v1.5.0/go.mod h1:g9fo/T2C13cWRDR9PW1r0ZAOSQfNhWAZawyfkGiaHuI= github.com/roadrunner-server/events v1.0.1 h1:waCkKhxhzdK3VcI1xG22l+h+0J+Nfdpxjhyy01Un+kI= github.com/roadrunner-server/events v1.0.1/go.mod h1:WZRqoEVaFm209t52EuoT7ISUtvX6BrCi6bI/7pjkVC0= -github.com/roadrunner-server/goridge/v4 v4.0.0-beta.2 h1:MgH6oiSgcl+vphsQ6JpyedkXQ/DPf8zVpn0z7rdBp10= -github.com/roadrunner-server/goridge/v4 v4.0.0-beta.2/go.mod h1:Wv9CBO9VIU92e5iZIuehLHKakXgMkOzxoT4/oHDjIUA= -github.com/roadrunner-server/informer/v6 v6.0.0-beta.2 h1:tJsNgbQ28mK5CdQCpU+BY6ScWP884nhpGYfwJalZOlU= -github.com/roadrunner-server/informer/v6 v6.0.0-beta.2/go.mod h1:nDn5jjR1ZI1Xhz01j32bSs4PHv78IE96rcqdFr/ZvgU= -github.com/roadrunner-server/jobs/v6 v6.0.0-beta.7 h1:RNb8fkVk2GO02E3FFyCmYz6WFkeXrBfV/daK84WXAD0= -github.com/roadrunner-server/jobs/v6 v6.0.0-beta.7/go.mod h1:kHTJXgjMe/7t9vJN4imEO3RlB7crnnp59X8TmgiEOqw= +github.com/roadrunner-server/goridge/v4 v4.0.0-beta.3 h1:+kUw00/fpqwdMWrPMYW+OZH3O4gEar8hqrY7I+nAztA= +github.com/roadrunner-server/goridge/v4 v4.0.0-beta.3/go.mod h1:1aHppV68y/VqRED/AsfNg59sft9aQOhqgr5Z5n49jbM= +github.com/roadrunner-server/informer/v6 v6.0.0-beta.3 h1:Ca8rZynig3lsK2P9aaC93Wu9OJV7Hz6kxCfDumewWNw= +github.com/roadrunner-server/informer/v6 v6.0.0-beta.3/go.mod h1:Hl44YSlLszBtIIE98ynNFJp4T1iJDkgeBdMOieMuGZw= +github.com/roadrunner-server/jobs/v6 v6.0.0-beta.8 h1:kzt/0wepfVKkjsFf24cBwdc7lan9FHAdU2AoyG9Xen4= +github.com/roadrunner-server/jobs/v6 v6.0.0-beta.8/go.mod h1:6QiZfsJCMHYW8p36SQlRRdCZmad/4q7OBNezWWfg/AY= github.com/roadrunner-server/logger/v6 v6.0.0-beta.3 h1:eoJKXAUSyykDfVX6eTUhmAn6Y8pS/LyI5fDP4H+G5rQ= github.com/roadrunner-server/logger/v6 v6.0.0-beta.3/go.mod h1:MwHb3AbltHYtu7nRpml5NeYu7O+W8rCpDBeNTTEoE1M= github.com/roadrunner-server/pool/v2 v2.0.0-beta.1 h1:jpYXFtdD6QGAdAGPgMxrNi3j1CegCRpb2y+A+3GnXFA= github.com/roadrunner-server/pool/v2 v2.0.0-beta.1/go.mod h1:Bo1wT7RtL3eyQHXBUohNhtj/yAmRt6Rq8smuBg5pWkY= github.com/roadrunner-server/priority_queue v1.0.6 h1:x8bcMyjWs2Z4ySbO9BTP8Dzy2prCuazJY9HHrVTmUVY= github.com/roadrunner-server/priority_queue v1.0.6/go.mod h1:aJ2D9s18+OGpFfNgwoIduraaFYBGv4FKElnpzqO+TBI= -github.com/roadrunner-server/resetter/v6 v6.0.0-beta.3 h1:+hkbf/kXpvFjx4LfkuH8dvR07rBwrStmcqJaffsfL0g= -github.com/roadrunner-server/resetter/v6 v6.0.0-beta.3/go.mod h1:zV+MfVo6jtvrop+04HNcr4z3b/22qyKXukK29kzagYc= -github.com/roadrunner-server/rpc/v6 v6.0.0-beta.4 h1:Qj2nrHIWOHE9Tys+FBG2IdoPtzgIUh6juQ5wXLGGDMw= -github.com/roadrunner-server/rpc/v6 v6.0.0-beta.4/go.mod h1:k5KT3fpnJVd27m0HbGGBiTPXlWI6eJdd6C+ohp5IE0U= +github.com/roadrunner-server/resetter/v6 v6.0.0-beta.4 h1:zwCUQkb29WULIdftOtfz0Owlvqi7wU8u0U3IAqdGM2Q= +github.com/roadrunner-server/resetter/v6 v6.0.0-beta.4/go.mod h1:C6wq5K+jg4IYjYcME+Jiys1PHGlaDstnT5dg88inqi8= +github.com/roadrunner-server/rpc/v6 v6.0.0-beta.5 h1:FjwXfznbmyCEKFUHkxnvK8yo1HQKAQk+7fiPhSYC27E= +github.com/roadrunner-server/rpc/v6 v6.0.0-beta.5/go.mod h1:z387hZZOEJ3+bB8iW1PEAEXF3jUUb/dDLDnVSc1CNNQ= github.com/roadrunner-server/server/v6 v6.0.0-beta.6 h1:CPtH4eIYkeRKi5cPXxb0+J+LI824cqhIGXAfcH+nkjA= github.com/roadrunner-server/server/v6 v6.0.0-beta.6/go.mod h1:SbODuCzC2gcbFhAmJDWvjf34pPrUWP5NxxVsTRQDuZ4= github.com/roadrunner-server/tcplisten v1.5.2 h1:nn8yXYrhRDkfQ9AAu4V075uT4fZRmOnpxkawgE+bWPA= @@ -141,25 +135,17 @@ go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= go.yaml.in/yaml/v2 v2.4.4/go.mod h1:gMZqIpDtDqOfM0uNfy0SkpRhvUryYH0Z6wdMYcacYXQ= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= -golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= -golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= -golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= +golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= -golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= -golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= -gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= -gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= +golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= +golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE= +golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4= google.golang.org/genproto v0.0.0-20260526163538-3dc84a4a5aaa h1:mfj8IS4EA4VAR9a6QDVxTQkLY64iBybb5QI1B4pXrpE= google.golang.org/genproto v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:fuT7yonGw1Iq2oa+YC0fyqPPQJkgo/54gPNC6VitOkI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68 h1:PvEgGJf9C/1u5CHkInMg7UFYYUoiaQmW2LbtH0pjB78= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= -google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ= -google.golang.org/grpc v1.81.1/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/tests/helpers/helpers.go b/tests/helpers/helpers.go index 3cecbc9..2d2a852 100644 --- a/tests/helpers/helpers.go +++ b/tests/helpers/helpers.go @@ -2,41 +2,36 @@ package helpers import ( "bytes" - "context" - "crypto/tls" "net" "net/http" + "net/rpc" "slices" "testing" "time" - "connectrpc.com/connect" "github.com/google/uuid" jobsProto "github.com/roadrunner-server/api-go/v6/jobs/v2" - "github.com/roadrunner-server/api-go/v6/jobs/v2/jobsV2connect" jobState "github.com/roadrunner-server/api-plugins/v6/jobs" + goridgeRpc "github.com/roadrunner-server/goridge/v4/pkg/rpc" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "golang.org/x/net/http2" "google.golang.org/protobuf/types/known/emptypb" ) -func NewJobsClient(t *testing.T, address string) jobsV2connect.JobsServiceClient { +func NewJobsClient(t *testing.T, address string) *rpc.Client { t.Helper() - httpc := &http.Client{Transport: &http2.Transport{ - AllowHTTP: true, - DialTLSContext: func(ctx context.Context, network, addr string, _ *tls.Config) (net.Conn, error) { - return new(net.Dialer).DialContext(ctx, network, addr) - }, - }} - t.Cleanup(httpc.CloseIdleConnections) - return jobsV2connect.NewJobsServiceClient(httpc, "http://"+address) + conn, err := (&net.Dialer{}).DialContext(t.Context(), "tcp", address) + require.NoError(t, err) + client := rpc.NewClientWithCodec(goridgeRpc.NewClientCodec(conn)) + t.Cleanup(func() { _ = client.Close() }) + return client } func ResumePipes(address string, pipes ...string) func(t *testing.T) { return func(t *testing.T) { client := NewJobsClient(t, address) - _, err := client.Resume(t.Context(), connect.NewRequest(&jobsProto.Pipelines{Pipelines: slices.Clone(pipes)})) + er := &jobsProto.JobsHandlerResponse{} + err := client.Call("jobs.Resume", &jobsProto.Pipelines{Pipelines: slices.Clone(pipes)}, er) require.NoError(t, err) } } @@ -44,7 +39,8 @@ func ResumePipes(address string, pipes ...string) func(t *testing.T) { func PushToPipe(pipeline string, autoAck bool, address string) func(t *testing.T) { return func(t *testing.T) { client := NewJobsClient(t, address) - _, err := client.Push(t.Context(), connect.NewRequest(&jobsProto.PushRequest{Job: createDummyJob(pipeline, autoAck)})) + er := &jobsProto.JobsHandlerResponse{} + err := client.Call("jobs.Push", &jobsProto.PushRequest{Job: createDummyJob(pipeline, autoAck)}, er) require.NoError(t, err) } } @@ -63,7 +59,8 @@ func PushToPipeDelayed(address string, pipeline string, delay int64) func(t *tes Delay: delay, }, }} - _, err := client.Push(t.Context(), connect.NewRequest(req)) + er := &jobsProto.JobsHandlerResponse{} + err := client.Call("jobs.Push", req, er) assert.NoError(t, err) } } @@ -86,7 +83,8 @@ func createDummyJob(pipeline string, autoAck bool) *jobsProto.Job { func PausePipelines(address string, pipes ...string) func(t *testing.T) { return func(t *testing.T) { client := NewJobsClient(t, address) - _, err := client.Pause(t.Context(), connect.NewRequest(&jobsProto.Pipelines{Pipelines: slices.Clone(pipes)})) + er := &jobsProto.JobsHandlerResponse{} + err := client.Call("jobs.Pause", &jobsProto.Pipelines{Pipelines: slices.Clone(pipes)}, er) require.NoError(t, err) } } @@ -100,7 +98,8 @@ func DestroyPipelines(address string, pipes ...string) func(t *testing.T) { // without asserting. Some negative tests intentionally destroy // non-existent pipelines and rely on this silent-after-retry pattern. for range 10 { - _, err := client.Destroy(t.Context(), connect.NewRequest(req)) + out := &jobsProto.Pipelines{} + err := client.Call("jobs.Destroy", req, out) if err == nil { return } @@ -113,12 +112,13 @@ func Stats(address string, state *jobState.State) func(t *testing.T) { return func(t *testing.T) { client := NewJobsClient(t, address) - resp, err := client.GetStats(t.Context(), connect.NewRequest(&emptypb.Empty{})) + resp := &jobsProto.Stats{} + err := client.Call("jobs.GetStats", &emptypb.Empty{}, resp) require.NoError(t, err) require.NotNil(t, resp) - require.NotEmpty(t, resp.Msg.GetStats()) + require.NotEmpty(t, resp.GetStats()) - st := resp.Msg.GetStats()[0] + st := resp.GetStats()[0] state.Queue = st.GetQueue() state.Pipeline = st.GetPipeline() state.Driver = st.GetDriver() diff --git a/tests/jobs_nsq_test.go b/tests/jobs_nsq_test.go index 2eb90ac..f778d9a 100644 --- a/tests/jobs_nsq_test.go +++ b/tests/jobs_nsq_test.go @@ -14,7 +14,6 @@ import ( "tests/helpers" mocklogger "tests/mock" - "connectrpc.com/connect" "github.com/google/uuid" "github.com/nsqio/go-nsq" jobsProto "github.com/roadrunner-server/api-go/v6/jobs/v2" @@ -804,7 +803,7 @@ func declareNSQPipe(address string) func(t *testing.T) { "priority": "3", "prefetch": "10", }} - _, err := client.Declare(t.Context(), connect.NewRequest(req)) + err := client.Call("jobs.Declare", req, &jobsProto.JobsHandlerResponse{}) require.NoError(t, err) } } From e6a2d6a9f60961100771cc0d5298473939d3b842 Mon Sep 17 00:00:00 2001 From: Valery Piashchynski Date: Wed, 15 Jul 2026 20:09:36 +0200 Subject: [PATCH 2/2] fix(tests): drop tautological assertion on locally-allocated reply Signed-off-by: Valery Piashchynski --- tests/helpers/helpers.go | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/helpers/helpers.go b/tests/helpers/helpers.go index 2d2a852..cad0213 100644 --- a/tests/helpers/helpers.go +++ b/tests/helpers/helpers.go @@ -115,7 +115,6 @@ func Stats(address string, state *jobState.State) func(t *testing.T) { resp := &jobsProto.Stats{} err := client.Call("jobs.GetStats", &emptypb.Empty{}, resp) require.NoError(t, err) - require.NotNil(t, resp) require.NotEmpty(t, resp.GetStats()) st := resp.GetStats()[0]