fix: ensure protocolVersion is a number in WebSocket options (#6013) #6772
GitHub Actions / CLI Test Results
failed
Nov 6, 2025 in 0s
1 errors, 226 pass in 58s
Annotations
Check failure on line 0 in https://httpbun.com/mix/s=302/c=foo:bar/r=https%3A%2F%2Fhttpbun.org%2Fget
github-actions / CLI Test Results
Test suite has no errors (https://httpbun.com/mix/s=302/c=foo:bar/r=https%3A%2F%2Fhttpbun.org%2Fget) with error
packages/bruno-tests/collection/junit.xml [took 0s]
Raw output
write EPROTO C0ECCC896D7F0000:error:0A000438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error:../deps/openssl/openssl/ssl/record/rec_layer_s3.c:1605:SSL alert number 80
Check notice on line 0 in .github
github-actions / CLI Test Results
227 tests found
There are 227 tests, see "Raw output" for the full list of tests.
Raw output
http://localhost:8081/api/redirect/multipart-redirect-source ‑ res.status 200
http://localhost:8081/api/redirect/multipart-redirect-source ‑ should handle consumed FormData recreation during 308 redirect
http://localhost:8081/api/redirect/multipart-redirect-source ‑ should maintain content-type header during redirect
http://localhost:8081/api/redirect/multipart-redirect-source ‑ should maintain proper content-type after FormData recreation
http://localhost:8081/api/redirect/multipart-redirect-source ‑ should preserve POST method during redirect
http://localhost:8081/api/redirect/multipart-redirect-source ‑ should preserve POST method when FormData is consumed and recreated
http://localhost:8081/api/redirect/multipart-redirect-source ‑ should receive all text fields at target endpoint
http://localhost:8081/api/redirect/multipart-redirect-source ‑ should receive form data after FormData recreation
http://localhost:8081/api/redirect/multipart-redirect-source ‑ should receive form data at target endpoint
http://localhost:8081/api/redirect/multipart-redirect-source ‑ should successfully redirect complex multipart form data with 308
http://localhost:8081/api/redirect/multipart-redirect-source ‑ should successfully redirect multipart form data with 308
https://echo.usebruno.com ‑ Content-Type header is set correctly
https://echo.usebruno.com ‑ cheerio html - from post response script
https://echo.usebruno.com ‑ cheerio html - from pre request script
https://echo.usebruno.com ‑ cheerio html - from tests
https://echo.usebruno.com ‑ collection level test - should get the var that was set by the collection script
https://echo.usebruno.com ‑ folder level test - should get the var that was set by the folder script
https://echo.usebruno.com ‑ form-urlencoded body with variables and duplicate keys
https://echo.usebruno.com ‑ post request with async/await - error case
https://echo.usebruno.com ‑ post request with async/await - success case
https://echo.usebruno.com ‑ post request with callback - error case
https://echo.usebruno.com ‑ post request with callback - success case
https://echo.usebruno.com ‑ post request with promise chain - error case
https://echo.usebruno.com ‑ post request with promise chain - success case
https://echo.usebruno.com ‑ req.setBody() - request body
https://echo.usebruno.com ‑ req.setBody() - response body
https://echo.usebruno.com ‑ req.setBody() with edge cases - request body
https://echo.usebruno.com ‑ req.setBody() with edge cases - response body
https://echo.usebruno.com ‑ req.setBody() with object - request body
https://echo.usebruno.com ‑ req.setBody() with object - response body
https://echo.usebruno.com ‑ req.setBody() with string format - request body
https://echo.usebruno.com ‑ req.setBody() with string format - response body
https://echo.usebruno.com ‑ res.body contains Content-Type: application/json--test
https://echo.usebruno.com ‑ res.body contains form-data-value
https://echo.usebruno.com ‑ res.body contains {"foo":123}
https://echo.usebruno.com ‑ res.body.booleanFalse eq false
https://echo.usebruno.com ‑ res.body.booleanTrue eq true
https://echo.usebruno.com ‑ res.body.float eq 2.718
https://echo.usebruno.com ‑ res.body.float isNumber
https://echo.usebruno.com ‑ res.body.integer eq 123
https://echo.usebruno.com ‑ res.body.integer isNumber
https://echo.usebruno.com ‑ res.body.largeDouble eq 12345.678901234567
https://echo.usebruno.com ‑ res.body.largeDouble isNumber
https://echo.usebruno.com ‑ res.body.negativeFloat eq -1.618
https://echo.usebruno.com ‑ res.body.negativeFloat isNumber
https://echo.usebruno.com ‑ res.body.negativeInteger eq -99
https://echo.usebruno.com ‑ res.body.negativeInteger isNumber
https://echo.usebruno.com ‑ res.body.smallDouble eq 9.876e-12
https://echo.usebruno.com ‑ res.body.smallDouble isNumber
https://echo.usebruno.com ‑ res.body.zero eq 0
https://echo.usebruno.com ‑ res.body.zero isNumber
https://echo.usebruno.com ‑ res.status eq 200
https://echo.usebruno.com ‑ send request with a get url string
https://echo.usebruno.com ‑ should attach auth cookie in request headers
https://echo.usebruno.com ‑ should get env var set in runRequest-2
https://echo.usebruno.com ‑ should get global env var set in runRequest-2
https://echo.usebruno.com ‑ should get random byte values
https://echo.usebruno.com ‑ should get random values
https://echo.usebruno.com ‑ should get response of runRequest-2
https://echo.usebruno.com ‑ should get runtime var set in runRequest-2
https://echo.usebruno.com ‑ should get the header value set at collection level
https://echo.usebruno.com ‑ should get the header value set at folder level
https://echo.usebruno.com ‑ should interpolate arrays and objects in request payload body
https://echo.usebruno.com ‑ test headers
https://httpbun.com/mix/s=302/c=foo:bar/r=https%3A%2F%2Fhttpbun.org%2Fget ‑ Test suite has no errors
https://spacex-production.up.railway.app/ ‑ res.status eq 200
https://testbench-sanity.usebruno.com/api/auth/basic/protected ‑ res.body Unauthorized
https://testbench-sanity.usebruno.com/api/auth/basic/protected ‑ res.body.message Authentication successful
https://testbench-sanity.usebruno.com/api/auth/basic/protected ‑ res.status 200
https://testbench-sanity.usebruno.com/api/auth/basic/protected ‑ res.status 401
https://testbench-sanity.usebruno.com/api/auth/basic/protected ‑ res.status eq 200
https://testbench-sanity.usebruno.com/api/auth/bearer/protected ‑ res.body.message Authentication successful
https://testbench-sanity.usebruno.com/api/auth/bearer/protected ‑ res.body.message eq Unauthorized
https://testbench-sanity.usebruno.com/api/auth/bearer/protected ‑ res.status 200
https://testbench-sanity.usebruno.com/api/auth/bearer/protected ‑ res.status eq 401
https://testbench-sanity.usebruno.com/api/auth/bearer/protected ‑ selected auth overrides Authorization header always
https://testbench-sanity.usebruno.com/api/echo/json ‑ Response body matches expected schema
https://testbench-sanity.usebruno.com/api/echo/json ‑ data types check via bru var
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.body.array isArray
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.body.boolean eq false
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.body.boolean isBoolean false
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.body.null eq null
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.body.null isNull null
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.body.number_1 eq 1
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.body.number_1 isNumber 1
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.body.number_2 eq 0
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.body.number_2 isNumber
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.body.number_3 eq -1
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.body.number_3 isNumber
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.body.string eq bruno
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.body.string isString bruno
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.body.undefined eq undefined
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.body.undefined isUndefined undefined
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.getBody()
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.getTags() should return array of tags
https://testbench-sanity.usebruno.com/api/echo/json ‑ req.setBody()
https://testbench-sanity.usebruno.com/api/echo/json ‑ res.getBody()
https://testbench-sanity.usebruno.com/api/echo/json ‑ res.getHeader(name)
https://testbench-sanity.usebruno.com/api/echo/json ‑ res.getHeaders(name)
https://testbench-sanity.usebruno.com/api/echo/json ‑ res.getResponseTime()
https://testbench-sanity.usebruno.com/api/echo/json ‑ res.setBody(array)
https://testbench-sanity.usebruno.com/api/echo/json ‑ res.setBody(boolean)
https://testbench-sanity.usebruno.com/api/echo/json ‑ res.setBody(null)
https://testbench-sanity.usebruno.com/api/echo/json ‑ res.setBody(number)
https://testbench-sanity.usebruno.com/api/echo/json ‑ res.setBody(object)
https://testbench-sanity.usebruno.com/api/echo/json ‑ res.setBody(string)
https://testbench-sanity.usebruno.com/api/echo/json ‑ res.setBody(undefined)
https://testbench-sanity.usebruno.com/api/echo/json ‑ res.status eq 200
https://testbench-sanity.usebruno.com/api/echo/json ‑ should return json
https://testbench-sanity.usebruno.com/api/echo/json ‑ should run request and return valid response in post-response script
https://testbench-sanity.usebruno.com/api/echo/json ‑ should run request and return valid response in pre-request script
https://testbench-sanity.usebruno.com/api/echo/json ‑ should run request and return valid response in tests script
https://testbench-sanity.usebruno.com/api/echo/json?foo={{undefinedVar}} ‑ res.status eq 200
https://testbench-sanity.usebruno.com/api/echo/json?foo={{undefinedVar}} ‑ should return json
https://testbench-sanity.usebruno.com/api/echo/text ‑ res.status eq 200
https://testbench-sanity.usebruno.com/api/echo/text ‑ should return json
https://testbench-sanity.usebruno.com/api/echo/text ‑ should return plain text
https://testbench-sanity.usebruno.com/api/echo/xml-parsed ‑ res.status eq 200
https://testbench-sanity.usebruno.com/api/echo/xml-parsed ‑ should return parsed xml
https://testbench-sanity.usebruno.com/ping ‑ Check if collection name is bruno-testbench
https://testbench-sanity.usebruno.com/ping ‑ Check if request name is getName
https://testbench-sanity.usebruno.com/ping ‑ bru.getProcessEnv()
https://testbench-sanity.usebruno.com/ping ‑ crypto message
https://testbench-sanity.usebruno.com/ping ‑ invalid_module_error_thrown eq true
https://testbench-sanity.usebruno.com/ping ‑ nanoid var
https://testbench-sanity.usebruno.com/ping ‑ req.getHeader(name)
https://testbench-sanity.usebruno.com/ping ‑ req.getHeaders()
https://testbench-sanity.usebruno.com/ping ‑ req.getMethod()()
https://testbench-sanity.usebruno.com/ping ‑ req.getUrl()
https://testbench-sanity.usebruno.com/ping ‑ req.setHeader(name)
https://testbench-sanity.usebruno.com/ping ‑ req.setHeaders()
https://testbench-sanity.usebruno.com/ping ‑ req.setMethod()()
https://testbench-sanity.usebruno.com/ping ‑ req.setUrl()
https://testbench-sanity.usebruno.com/ping ‑ res.body eq pong
https://testbench-sanity.usebruno.com/ping ‑ res.getStatus()
https://testbench-sanity.usebruno.com/ping ‑ res.getStatusText()
https://testbench-sanity.usebruno.com/ping ‑ res.getUrl()
https://testbench-sanity.usebruno.com/ping ‑ res.status eq 200
https://testbench-sanity.usebruno.com/ping ‑ res.statusText eq OK
https://testbench-sanity.usebruno.com/ping ‑ res.url
https://testbench-sanity.usebruno.com/ping ‑ setTimeout()
https://testbench-sanity.usebruno.com/ping ‑ should contain expected cookie properties
https://testbench-sanity.usebruno.com/ping ‑ should find the cookie in domain cookie list
https://testbench-sanity.usebruno.com/ping ‑ should get collection var in scripts
https://testbench-sanity.usebruno.com/ping ‑ should get env name in scripts
https://testbench-sanity.usebruno.com/ping ‑ should get env var in scripts
https://testbench-sanity.usebruno.com/ping ‑ should get folder var in scripts
https://testbench-sanity.usebruno.com/ping ‑ should get request var in scripts
https://testbench-sanity.usebruno.com/ping ‑ should get var in scripts
https://testbench-sanity.usebruno.com/ping ‑ should have no cookies remaining after deletion
https://testbench-sanity.usebruno.com/ping ‑ should have set cookie successfully
https://testbench-sanity.usebruno.com/ping ‑ should have set multiple cookies successfully
https://testbench-sanity.usebruno.com/ping ‑ should have valid cookie structure in array
https://testbench-sanity.usebruno.com/ping ‑ should interpolate envs
https://testbench-sanity.usebruno.com/ping ‑ should interpolate objects with vars, random vars
https://testbench-sanity.usebruno.com/ping ‑ should interpolate random variables
https://testbench-sanity.usebruno.com/ping ‑ should retrieve first cookie with correct properties
https://testbench-sanity.usebruno.com/ping ‑ should retrieve second cookie with correct properties
https://testbench-sanity.usebruno.com/ping ‑ should retrieve the set cookie with correct properties
https://testbench-sanity.usebruno.com/ping ‑ should set env var in scripts
https://testbench-sanity.usebruno.com/ping ‑ should successfully clear with callback
https://testbench-sanity.usebruno.com/ping ‑ should successfully delete with callback
https://testbench-sanity.usebruno.com/ping ‑ should successfully retrieve cookie data
https://testbench-sanity.usebruno.com/ping ‑ should successfully retrieve cookies array
https://testbench-sanity.usebruno.com/ping ‑ uuid var
https://testbench-sanity.usebruno.com/ping ‑ valid_module_no_error eq true
https://testbench-sanity.usebruno.com/ping ‑ xml2js parseString in scripts - post response
https://testbench-sanity.usebruno.com/ping ‑ xml2js parseString in scripts - pre request
https://testbench-sanity.usebruno.com/ping ‑ xml2js parseString in tests
https://testbench-sanity.usebruno.com/redirect-to-ping ‑ res.body pong
https://testbench-sanity.usebruno.com/redirect-to-ping ‑ res.status 200
https://testbench-sanity.usebruno.com/redirect-to-ping ‑ res.status 302
https://testbench-sanity.usebruno.com/redirect-to-ping ‑ should disable redirect to ping
https://testbench-sanity.usebruno.com/redirect-to-ping ‑ should redirect to ping
https://www.httpfaker.org/api/auth/digest/auth/admin/badpassword ‑ res.status eq 401
https://www.httpfaker.org/api/auth/digest/auth/admin/password ‑ res.body.authenticated isTruthy
https://www.httpfaker.org/api/auth/digest/auth/admin/password ‑ res.status eq 200
https://www.httpfaker.org/api/echo/custom ‑ res.body eq "this is encoded with utf16"
https://www.httpfaker.org/api/echo/custom ‑ res.body eq "this is encoded with utf16-be with BOM"
https://www.httpfaker.org/api/echo/custom ‑ res.body eq "this is encoded with utf16-le with BOM"
https://www.httpfaker.org/api/echo/custom ‑ res.body eq "this is utf8 encoded with BOM, why not?"
https://www.httpfaker.org/api/echo/custom ‑ res.body eq '"ok"'
https://www.httpfaker.org/api/echo/custom ‑ res.body eq 3.1
https://www.httpfaker.org/api/echo/custom ‑ res.body eq <h1>hello</h1>
https://www.httpfaker.org/api/echo/custom ‑ res.body eq <message>hello</message>
https://www.httpfaker.org/api/echo/custom ‑ res.body eq false
https://www.httpfaker.org/api/echo/custom ‑ res.body eq hello
https://www.httpfaker.org/api/echo/custom ‑ res.body eq hello\n\tworld
https://www.httpfaker.org/api/echo/custom ‑ res.body eq null
https://www.httpfaker.org/api/echo/custom ‑ res.body eq ok
https://www.httpfaker.org/api/echo/custom ‑ res.body eq true
https://www.httpfaker.org/api/echo/custom ‑ res.body.false eq false
https://www.httpfaker.org/api/echo/custom ‑ res.body.falseAsString eq "false"
https://www.httpfaker.org/api/echo/custom ‑ res.body.falseAsStringWithDQuotes eq '"false"'
https://www.httpfaker.org/api/echo/custom ‑ res.body.falseAsStringWithSQuotes eq "'false'"
https://www.httpfaker.org/api/echo/custom ‑ res.body.message eq hello
https://www.httpfaker.org/api/echo/custom ‑ res.body.nonexistent eq undefined
https://www.httpfaker.org/api/echo/custom ‑ res.body.null eq null
https://www.httpfaker.org/api/echo/custom ‑ res.body.nullAsString eq "null"
https://www.httpfaker.org/api/echo/custom ‑ res.body.nullAsStringWithDQuotes eq '"null"'
https://www.httpfaker.org/api/echo/custom ‑ res.body.nullAsStringWithSQuotes eq "'null'"
https://www.httpfaker.org/api/echo/custom ‑ res.body.number eq 123
https://www.httpfaker.org/api/echo/custom ‑ res.body.numberAsString eq "123"
https://www.httpfaker.org/api/echo/custom ‑ res.body.numberAsString eq '123'
https://www.httpfaker.org/api/echo/custom ‑ res.body.numberAsStringWithDQuotes eq '"123"'
https://www.httpfaker.org/api/echo/custom ‑ res.body.numberAsStringWithLeadingZero eq "0123"
https://www.httpfaker.org/api/echo/custom ‑ res.body.numberAsStringWithSQuotes eq "'123'"
https://www.httpfaker.org/api/echo/custom ‑ res.body.numberBig.toString() eq '9007199254740992000'
https://www.httpfaker.org/api/echo/custom ‑ res.body.numberBigAsString eq "9007199254740991999"
https://www.httpfaker.org/api/echo/custom ‑ res.body.string eq "foo"
https://www.httpfaker.org/api/echo/custom ‑ res.body.string eq 'foo'
https://www.httpfaker.org/api/echo/custom ‑ res.body.string eq foo
https://www.httpfaker.org/api/echo/custom ‑ res.body.stringWithCurlyBraces eq "{foo}"
https://www.httpfaker.org/api/echo/custom ‑ res.body.stringWithDQuotes eq '"foo"'
https://www.httpfaker.org/api/echo/custom ‑ res.body.stringWithDoubleCurlyBraces eq "{{foobar}}"
https://www.httpfaker.org/api/echo/custom ‑ res.body.stringWithSQuotes eq "'foo'"
https://www.httpfaker.org/api/echo/custom ‑ res.body.toString() eq 90071992547409920000
https://www.httpfaker.org/api/echo/custom ‑ res.body.true eq true
https://www.httpfaker.org/api/echo/custom ‑ res.body.trueAsString eq "true"
https://www.httpfaker.org/api/echo/custom ‑ res.body.trueAsStringWithDQuotes eq '"true"'
https://www.httpfaker.org/api/echo/custom ‑ res.body.trueAsStringWithSQuotes eq "'true'"
https://www.httpfaker.org/api/echo/custom ‑ res.body.x eq 42
https://www.httpfaker.org/api/echo/custom ‑ response matches the expectation after utf-8 decoding(needs improvement)
https://www.httpfaker.org/api/random/json?size=1mb ‑ test total size
https://www.usebruno.com ‑ res.status eq 200
https://www.usebruno.com ‑ should return parsed xml
https://www.usebruno.com/favicon.ico ‑ should return parsed xml
Loading