fastify 4.0.0-alpha.1 → 4.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/.taprc +3 -0
  2. package/README.md +2 -3
  3. package/docs/Guides/Database.md +320 -0
  4. package/docs/Guides/Getting-Started.md +7 -7
  5. package/docs/Guides/Plugins-Guide.md +1 -1
  6. package/docs/Guides/Serverless.md +3 -3
  7. package/docs/Guides/Testing.md +2 -2
  8. package/docs/Reference/Decorators.md +2 -2
  9. package/docs/Reference/Encapsulation.md +2 -2
  10. package/docs/Reference/HTTP2.md +3 -3
  11. package/docs/Reference/Plugins.md +3 -3
  12. package/docs/Reference/Routes.md +5 -5
  13. package/docs/Reference/Server.md +27 -62
  14. package/docs/Reference/TypeScript.md +9 -9
  15. package/docs/Reference/Validation-and-Serialization.md +4 -4
  16. package/docs/Type-Providers.md +2 -2
  17. package/examples/asyncawait.js +1 -1
  18. package/examples/benchmark/hooks-benchmark-async-await.js +1 -1
  19. package/examples/benchmark/hooks-benchmark.js +1 -1
  20. package/examples/benchmark/simple.js +1 -1
  21. package/examples/hooks.js +1 -1
  22. package/examples/http2.js +1 -1
  23. package/examples/https.js +1 -1
  24. package/examples/parser.js +1 -1
  25. package/examples/route-prefix.js +1 -1
  26. package/examples/shared-schema.js +1 -1
  27. package/examples/simple-stream.js +1 -1
  28. package/examples/simple.js +1 -1
  29. package/examples/simple.mjs +1 -1
  30. package/examples/typescript-server.ts +1 -1
  31. package/examples/use-plugin.js +1 -1
  32. package/fastify.js +4 -2
  33. package/lib/reply.js +1 -1
  34. package/lib/server.js +32 -10
  35. package/lib/warnings.js +2 -0
  36. package/package.json +13 -11
  37. package/test/404s.test.js +16 -16
  38. package/test/500s.test.js +1 -1
  39. package/test/als.test.js +1 -1
  40. package/test/async-await.test.js +7 -7
  41. package/test/bodyLimit.test.js +1 -1
  42. package/test/build-certificate.js +6 -7
  43. package/test/case-insensitive.test.js +4 -4
  44. package/test/close-pipelining.test.js +2 -2
  45. package/test/close.test.js +11 -11
  46. package/test/custom-http-server.test.js +1 -1
  47. package/test/custom-parser-async.test.js +1 -1
  48. package/test/custom-parser.test.js +38 -38
  49. package/test/custom-querystring-parser.test.js +3 -3
  50. package/test/decorator.test.js +10 -10
  51. package/test/delete.test.js +1 -1
  52. package/test/genReqId.test.js +1 -1
  53. package/test/get.test.js +1 -1
  54. package/test/handler-context.test.js +2 -2
  55. package/test/head.test.js +1 -1
  56. package/test/helper.js +1 -1
  57. package/test/hooks-async.test.js +1 -1
  58. package/test/hooks.on-ready.test.js +1 -1
  59. package/test/hooks.test.js +20 -20
  60. package/test/http2/closing.test.js +5 -5
  61. package/test/http2/constraint.test.js +1 -1
  62. package/test/http2/head.test.js +1 -1
  63. package/test/http2/plain.test.js +1 -1
  64. package/test/http2/secure-with-fallback.test.js +1 -1
  65. package/test/http2/secure.test.js +1 -1
  66. package/test/http2/unknown-http-method.test.js +1 -1
  67. package/test/https/custom-https-server.test.js +1 -1
  68. package/test/https/https.test.js +1 -1
  69. package/test/input-validation.js +1 -1
  70. package/test/internals/handleRequest.test.js +3 -3
  71. package/test/internals/initialConfig.test.js +9 -1
  72. package/test/internals/logger.test.js +2 -2
  73. package/test/internals/reply.test.js +41 -42
  74. package/test/internals/server.test.js +5 -5
  75. package/test/listen.deprecated.test.js +202 -0
  76. package/test/listen.test.js +41 -156
  77. package/test/logger.test.js +15 -15
  78. package/test/maxRequestsPerSocket.test.js +2 -2
  79. package/test/nullable-validation.test.js +3 -3
  80. package/test/output-validation.test.js +1 -1
  81. package/test/plugin.test.js +16 -16
  82. package/test/promises.test.js +1 -1
  83. package/test/proto-poisoning.test.js +6 -6
  84. package/test/register.test.js +3 -3
  85. package/test/reply-error.test.js +3 -3
  86. package/test/request-error.test.js +1 -1
  87. package/test/route-hooks.test.js +1 -1
  88. package/test/route.test.js +3 -3
  89. package/test/router-options.test.js +1 -1
  90. package/test/schema-feature.test.js +1 -1
  91. package/test/schema-special-usage.test.js +0 -81
  92. package/test/skip-reply-send.test.js +1 -1
  93. package/test/stream.test.js +60 -12
  94. package/test/trust-proxy.test.js +6 -6
  95. package/test/types/instance.test-d.ts +33 -3
  96. package/test/types/reply.test-d.ts +2 -1
  97. package/test/url-rewriting.test.js +3 -3
  98. package/test/versioned-routes.test.js +3 -3
  99. package/types/.eslintrc.json +3 -1
  100. package/types/instance.d.ts +120 -14
  101. package/types/reply.d.ts +2 -1
@@ -60,7 +60,7 @@ test('contentTypeParser should add a custom parser', t => {
60
60
  })
61
61
  })
62
62
 
63
- fastify.listen(0, err => {
63
+ fastify.listen({ port: 0 }, err => {
64
64
  t.error(err)
65
65
 
66
66
  t.teardown(() => fastify.close())
@@ -122,7 +122,7 @@ test('contentTypeParser should handle multiple custom parsers', t => {
122
122
  fastify.addContentTypeParser('application/jsoff', customParser)
123
123
  fastify.addContentTypeParser('application/ffosj', customParser)
124
124
 
125
- fastify.listen(0, err => {
125
+ fastify.listen({ port: 0 }, err => {
126
126
  t.error(err)
127
127
  fastify.server.unref()
128
128
 
@@ -174,7 +174,7 @@ test('contentTypeParser should handle an array of custom contentTypes', t => {
174
174
 
175
175
  fastify.addContentTypeParser(['application/jsoff', 'application/ffosj'], customParser)
176
176
 
177
- fastify.listen(0, err => {
177
+ fastify.listen({ port: 0 }, err => {
178
178
  t.error(err)
179
179
  fastify.server.unref()
180
180
 
@@ -218,7 +218,7 @@ test('contentTypeParser should handle errors', t => {
218
218
  done(new Error('kaboom!'), {})
219
219
  })
220
220
 
221
- fastify.listen(0, err => {
221
+ fastify.listen({ port: 0 }, err => {
222
222
  t.error(err)
223
223
 
224
224
  sget({
@@ -279,7 +279,7 @@ test('contentTypeParser should support encapsulation, second try', t => {
279
279
  done()
280
280
  })
281
281
 
282
- fastify.listen(0, err => {
282
+ fastify.listen({ port: 0 }, err => {
283
283
  t.error(err)
284
284
 
285
285
  sget({
@@ -312,7 +312,7 @@ test('contentTypeParser shouldn\'t support request with undefined "Content-Type"
312
312
  })
313
313
  })
314
314
 
315
- fastify.listen(0, err => {
315
+ fastify.listen({ port: 0 }, err => {
316
316
  t.error(err)
317
317
 
318
318
  sget({
@@ -385,7 +385,7 @@ test('catch all content type parser', t => {
385
385
  })
386
386
  })
387
387
 
388
- fastify.listen(0, err => {
388
+ fastify.listen({ port: 0 }, err => {
389
389
  t.error(err)
390
390
 
391
391
  sget({
@@ -439,7 +439,7 @@ test('catch all content type parser should not interfere with other conte type p
439
439
  })
440
440
  })
441
441
 
442
- fastify.listen(0, err => {
442
+ fastify.listen({ port: 0 }, err => {
443
443
  t.error(err)
444
444
 
445
445
  sget({
@@ -492,7 +492,7 @@ test('\'*\' catch undefined Content-Type requests', t => {
492
492
  res.type('text/plain').send(req.body)
493
493
  })
494
494
 
495
- fastify.listen(0, function (err) {
495
+ fastify.listen({ port: 0 }, function (err) {
496
496
  t.error(err)
497
497
 
498
498
  const fileStream = fs.createReadStream(__filename)
@@ -520,7 +520,7 @@ test('cannot add custom parser after binding', t => {
520
520
  res.type('text/plain').send(req.body)
521
521
  })
522
522
 
523
- fastify.listen(0, function (err) {
523
+ fastify.listen({ port: 0 }, function (err) {
524
524
  t.error(err)
525
525
 
526
526
  try {
@@ -547,7 +547,7 @@ test('Can override the default json parser', t => {
547
547
  })
548
548
  })
549
549
 
550
- fastify.listen(0, err => {
550
+ fastify.listen({ port: 0 }, err => {
551
551
  t.error(err)
552
552
 
553
553
  sget({
@@ -581,7 +581,7 @@ test('Can override the default plain text parser', t => {
581
581
  })
582
582
  })
583
583
 
584
- fastify.listen(0, err => {
584
+ fastify.listen({ port: 0 }, err => {
585
585
  t.error(err)
586
586
 
587
587
  sget({
@@ -619,7 +619,7 @@ test('Can override the default json parser in a plugin', t => {
619
619
  done()
620
620
  })
621
621
 
622
- fastify.listen(0, err => {
622
+ fastify.listen({ port: 0 }, err => {
623
623
  t.error(err)
624
624
 
625
625
  sget({
@@ -704,7 +704,7 @@ test('Should get the body as string', t => {
704
704
  }
705
705
  })
706
706
 
707
- fastify.listen(0, err => {
707
+ fastify.listen({ port: 0 }, err => {
708
708
  t.error(err)
709
709
 
710
710
  sget({
@@ -731,7 +731,7 @@ test('Should return defined body with no custom parser defined and content type
731
731
  reply.send(req.body)
732
732
  })
733
733
 
734
- fastify.listen(0, err => {
734
+ fastify.listen({ port: 0 }, err => {
735
735
  t.error(err)
736
736
 
737
737
  sget({
@@ -758,7 +758,7 @@ test('Should have typeof body object with no custom parser defined, no body defi
758
758
  reply.send(req.body)
759
759
  })
760
760
 
761
- fastify.listen(0, err => {
761
+ fastify.listen({ port: 0 }, err => {
762
762
  t.error(err)
763
763
 
764
764
  sget({
@@ -784,7 +784,7 @@ test('Should have typeof body object with no custom parser defined, null body an
784
784
  reply.send(req.body)
785
785
  })
786
786
 
787
- fastify.listen(0, err => {
787
+ fastify.listen({ port: 0 }, err => {
788
788
  t.error(err)
789
789
 
790
790
  sget({
@@ -811,7 +811,7 @@ test('Should have typeof body object with no custom parser defined, undefined bo
811
811
  reply.send(req.body)
812
812
  })
813
813
 
814
- fastify.listen(0, err => {
814
+ fastify.listen({ port: 0 }, err => {
815
815
  t.error(err)
816
816
 
817
817
  sget({
@@ -850,7 +850,7 @@ test('Should get the body as string', t => {
850
850
  }
851
851
  })
852
852
 
853
- fastify.listen(0, err => {
853
+ fastify.listen({ port: 0 }, err => {
854
854
  t.error(err)
855
855
 
856
856
  sget({
@@ -889,7 +889,7 @@ test('Should get the body as buffer', t => {
889
889
  }
890
890
  })
891
891
 
892
- fastify.listen(0, err => {
892
+ fastify.listen({ port: 0 }, err => {
893
893
  t.error(err)
894
894
 
895
895
  sget({
@@ -928,7 +928,7 @@ test('Should get the body as buffer', t => {
928
928
  }
929
929
  })
930
930
 
931
- fastify.listen(0, err => {
931
+ fastify.listen({ port: 0 }, err => {
932
932
  t.error(err)
933
933
 
934
934
  sget({
@@ -964,7 +964,7 @@ test('Should parse empty bodies as a string', t => {
964
964
  }
965
965
  })
966
966
 
967
- fastify.listen(0, err => {
967
+ fastify.listen({ port: 0 }, err => {
968
968
  t.error(err)
969
969
  fastify.server.unref()
970
970
 
@@ -1011,7 +1011,7 @@ test('Should parse empty bodies as a buffer', t => {
1011
1011
  done(null, body)
1012
1012
  })
1013
1013
 
1014
- fastify.listen(0, err => {
1014
+ fastify.listen({ port: 0 }, err => {
1015
1015
  t.error(err)
1016
1016
 
1017
1017
  sget({
@@ -1045,7 +1045,7 @@ test('The charset should not interfere with the content type handling', t => {
1045
1045
  })
1046
1046
  })
1047
1047
 
1048
- fastify.listen(0, err => {
1048
+ fastify.listen({ port: 0 }, err => {
1049
1049
  t.error(err)
1050
1050
 
1051
1051
  sget({
@@ -1095,7 +1095,7 @@ test('Should allow defining the bodyLimit per parser', t => {
1095
1095
  }
1096
1096
  )
1097
1097
 
1098
- fastify.listen(0, err => {
1098
+ fastify.listen({ port: 0 }, err => {
1099
1099
  t.error(err)
1100
1100
 
1101
1101
  sget({
@@ -1136,7 +1136,7 @@ test('route bodyLimit should take precedence over a custom parser bodyLimit', t
1136
1136
  }
1137
1137
  )
1138
1138
 
1139
- fastify.listen(0, err => {
1139
+ fastify.listen({ port: 0 }, err => {
1140
1140
  t.error(err)
1141
1141
 
1142
1142
  sget({
@@ -1168,7 +1168,7 @@ test('should be able to use default parser for extra content type', t => {
1168
1168
 
1169
1169
  fastify.addContentTypeParser('text/json', { parseAs: 'string' }, fastify.getDefaultJsonParser('ignore', 'ignore'))
1170
1170
 
1171
- fastify.listen(0, err => {
1171
+ fastify.listen({ port: 0 }, err => {
1172
1172
  t.error(err)
1173
1173
 
1174
1174
  sget({
@@ -1206,7 +1206,7 @@ test('contentTypeParser should add a custom parser with RegExp value', t => {
1206
1206
  })
1207
1207
  })
1208
1208
 
1209
- fastify.listen(0, err => {
1209
+ fastify.listen({ port: 0 }, err => {
1210
1210
  t.error(err)
1211
1211
 
1212
1212
  t.teardown(() => fastify.close())
@@ -1348,7 +1348,7 @@ test('catch all content type parser should not interfere with content type parse
1348
1348
  })
1349
1349
  })
1350
1350
 
1351
- fastify.listen(0, err => {
1351
+ fastify.listen({ port: 0 }, err => {
1352
1352
  t.error(err)
1353
1353
 
1354
1354
  sget({
@@ -1415,7 +1415,7 @@ test('should prefer string content types over RegExp ones', t => {
1415
1415
  })
1416
1416
  })
1417
1417
 
1418
- fastify.listen(0, err => {
1418
+ fastify.listen({ port: 0 }, err => {
1419
1419
  t.error(err)
1420
1420
 
1421
1421
  sget({
@@ -1472,7 +1472,7 @@ test('removeContentTypeParser should support arrays of content types to remove',
1472
1472
  reply.send(req.body)
1473
1473
  })
1474
1474
 
1475
- fastify.listen(0, err => {
1475
+ fastify.listen({ port: 0 }, err => {
1476
1476
  t.error(err)
1477
1477
 
1478
1478
  sget({
@@ -1540,7 +1540,7 @@ test('removeContentTypeParser should support encapsulation', t => {
1540
1540
  done()
1541
1541
  })
1542
1542
 
1543
- fastify.listen(0, err => {
1543
+ fastify.listen({ port: 0 }, err => {
1544
1544
  t.error(err)
1545
1545
 
1546
1546
  sget({
@@ -1590,7 +1590,7 @@ test('removeAllContentTypeParsers should support encapsulation', t => {
1590
1590
  done()
1591
1591
  })
1592
1592
 
1593
- fastify.listen(0, err => {
1593
+ fastify.listen({ port: 0 }, err => {
1594
1594
  t.error(err)
1595
1595
 
1596
1596
  sget({
@@ -1628,7 +1628,7 @@ test('cannot remove all content type parsers after binding', t => {
1628
1628
 
1629
1629
  t.teardown(fastify.close.bind(fastify))
1630
1630
 
1631
- fastify.listen(0, function (err) {
1631
+ fastify.listen({ port: 0 }, function (err) {
1632
1632
  t.error(err)
1633
1633
 
1634
1634
  t.throws(() => fastify.removeAllContentTypeParsers())
@@ -1642,7 +1642,7 @@ test('cannot remove content type parsers after binding', t => {
1642
1642
 
1643
1643
  t.teardown(fastify.close.bind(fastify))
1644
1644
 
1645
- fastify.listen(0, function (err) {
1645
+ fastify.listen({ port: 0 }, function (err) {
1646
1646
  t.error(err)
1647
1647
 
1648
1648
  t.throws(() => fastify.removeContentTypeParser('application/json'))
@@ -1667,7 +1667,7 @@ test('should be able to override the default json parser after removeAllContentT
1667
1667
  })
1668
1668
  })
1669
1669
 
1670
- fastify.listen(0, err => {
1670
+ fastify.listen({ port: 0 }, err => {
1671
1671
  t.error(err)
1672
1672
 
1673
1673
  sget({
@@ -1704,7 +1704,7 @@ test('should be able to override the default plain text parser after removeAllCo
1704
1704
  })
1705
1705
  })
1706
1706
 
1707
- fastify.listen(0, err => {
1707
+ fastify.listen({ port: 0 }, err => {
1708
1708
  t.error(err)
1709
1709
 
1710
1710
  sget({
@@ -1741,7 +1741,7 @@ test('should be able to add a custom content type parser after removeAllContentT
1741
1741
  })
1742
1742
  })
1743
1743
 
1744
- fastify.listen(0, err => {
1744
+ fastify.listen({ port: 0 }, err => {
1745
1745
  t.error(err)
1746
1746
 
1747
1747
  sget({
@@ -24,7 +24,7 @@ test('Custom querystring parser', t => {
24
24
  reply.send({ hello: 'world' })
25
25
  })
26
26
 
27
- fastify.listen(0, (err, address) => {
27
+ fastify.listen({ port: 0 }, (err, address) => {
28
28
  t.error(err)
29
29
  t.teardown(() => fastify.close())
30
30
 
@@ -61,7 +61,7 @@ test('Custom querystring parser should be called also if there is nothing to par
61
61
  reply.send({ hello: 'world' })
62
62
  })
63
63
 
64
- fastify.listen(0, (err, address) => {
64
+ fastify.listen({ port: 0 }, (err, address) => {
65
65
  t.error(err)
66
66
  t.teardown(() => fastify.close())
67
67
 
@@ -98,7 +98,7 @@ test('Querystring without value', t => {
98
98
  reply.send({ hello: 'world' })
99
99
  })
100
100
 
101
- fastify.listen(0, (err, address) => {
101
+ fastify.listen({ port: 0 }, (err, address) => {
102
102
  t.error(err)
103
103
  t.teardown(() => fastify.close())
104
104
 
@@ -132,7 +132,7 @@ test('decorateReply inside register', t => {
132
132
  reply.send({ hello: 'world' })
133
133
  })
134
134
 
135
- fastify.listen(0, err => {
135
+ fastify.listen({ port: 0 }, err => {
136
136
  t.error(err)
137
137
  fastify.server.unref()
138
138
 
@@ -180,7 +180,7 @@ test('decorateReply as plugin (inside .after)', t => {
180
180
  reply.send({ hello: 'world' })
181
181
  })
182
182
 
183
- fastify.listen(0, err => {
183
+ fastify.listen({ port: 0 }, err => {
184
184
  t.error(err)
185
185
  fastify.server.unref()
186
186
 
@@ -228,7 +228,7 @@ test('decorateReply as plugin (outside .after)', t => {
228
228
  reply.send({ hello: 'world' })
229
229
  })
230
230
 
231
- fastify.listen(0, err => {
231
+ fastify.listen({ port: 0 }, err => {
232
232
  t.error(err)
233
233
  fastify.server.unref()
234
234
 
@@ -274,7 +274,7 @@ test('decorateRequest inside register', t => {
274
274
  reply.send({ hello: 'world' })
275
275
  })
276
276
 
277
- fastify.listen(0, err => {
277
+ fastify.listen({ port: 0 }, err => {
278
278
  t.error(err)
279
279
  fastify.server.unref()
280
280
 
@@ -322,7 +322,7 @@ test('decorateRequest as plugin (inside .after)', t => {
322
322
  reply.send({ hello: 'world' })
323
323
  })
324
324
 
325
- fastify.listen(0, err => {
325
+ fastify.listen({ port: 0 }, err => {
326
326
  t.error(err)
327
327
  fastify.server.unref()
328
328
 
@@ -370,7 +370,7 @@ test('decorateRequest as plugin (outside .after)', t => {
370
370
  reply.send({ hello: 'world' })
371
371
  })
372
372
 
373
- fastify.listen(0, err => {
373
+ fastify.listen({ port: 0 }, err => {
374
374
  t.error(err)
375
375
  fastify.server.unref()
376
376
 
@@ -764,7 +764,7 @@ test('decorate* should throw if called after ready', async t => {
764
764
  })
765
765
  })
766
766
 
767
- await fastify.listen(0)
767
+ await fastify.listen({ port: 0 })
768
768
  try {
769
769
  fastify.decorate('test', true)
770
770
  t.fail('should not decorate')
@@ -949,7 +949,7 @@ test('decorateRequest/decorateReply empty string', t => {
949
949
  })
950
950
  t.teardown(fastify.close.bind(fastify))
951
951
 
952
- fastify.listen(0, err => {
952
+ fastify.listen({ port: 0 }, err => {
953
953
  t.error(err)
954
954
  fastify.server.unref()
955
955
 
@@ -978,7 +978,7 @@ test('decorateRequest/decorateReply is undefined', t => {
978
978
  })
979
979
  t.teardown(fastify.close.bind(fastify))
980
980
 
981
- fastify.listen(0, err => {
981
+ fastify.listen({ port: 0 }, err => {
982
982
  t.error(err)
983
983
  fastify.server.unref()
984
984
 
@@ -1007,7 +1007,7 @@ test('decorateRequest/decorateReply is not set to a value', t => {
1007
1007
  })
1008
1008
  t.teardown(fastify.close.bind(fastify))
1009
1009
 
1010
- fastify.listen(0, err => {
1010
+ fastify.listen({ port: 0 }, err => {
1011
1011
  t.error(err)
1012
1012
  fastify.server.unref()
1013
1013
 
@@ -157,7 +157,7 @@ test('body - delete', t => {
157
157
  }
158
158
  })
159
159
 
160
- fastify.listen(0, err => {
160
+ fastify.listen({ port: 0 }, err => {
161
161
  t.error(err)
162
162
  fastify.server.unref()
163
163
 
@@ -17,7 +17,7 @@ test('Should accept a custom genReqId function', t => {
17
17
  reply.send({ id: req.id })
18
18
  })
19
19
 
20
- fastify.listen(0, err => {
20
+ fastify.listen({ port: 0 }, err => {
21
21
  t.error(err)
22
22
  fastify.inject({
23
23
  method: 'GET',
package/test/get.test.js CHANGED
@@ -203,7 +203,7 @@ test('send a falsy boolean', t => {
203
203
  }
204
204
  })
205
205
 
206
- fastify.listen(0, err => {
206
+ fastify.listen({ port: 0 }, err => {
207
207
  t.error(err)
208
208
  fastify.server.unref()
209
209
 
@@ -32,7 +32,7 @@ test('handlers receive correct `this` context', (t) => {
32
32
  reply.send()
33
33
  })
34
34
 
35
- instance.listen(0, (err) => {
35
+ instance.listen({ port: 0 }, (err) => {
36
36
  instance.server.unref()
37
37
  if (err) t.threw(err)
38
38
  t.ok(instance.foo)
@@ -55,7 +55,7 @@ test('handlers have access to the internal context', (t) => {
55
55
  reply.send()
56
56
  })
57
57
 
58
- instance.listen(0, (err) => {
58
+ instance.listen({ port: 0 }, (err) => {
59
59
  instance.server.unref()
60
60
  if (err) t.threw(err)
61
61
  http.get(getUrl(instance), () => {}).on('error', t.threw)
package/test/head.test.js CHANGED
@@ -92,7 +92,7 @@ test('missing schema - head', t => {
92
92
  }
93
93
  })
94
94
 
95
- fastify.listen(0, err => {
95
+ fastify.listen({ port: 0 }, err => {
96
96
  t.error(err)
97
97
  fastify.server.unref()
98
98
 
package/test/helper.js CHANGED
@@ -92,7 +92,7 @@ module.exports.payloadMethod = function (method, t, isSetErrorHandler = false) {
92
92
  }
93
93
  })
94
94
 
95
- fastify.listen(0, function (err) {
95
+ fastify.listen({ port: 0 }, function (err) {
96
96
  if (err) {
97
97
  t.error(err)
98
98
  return
@@ -56,7 +56,7 @@ test('async hooks', t => {
56
56
  reply.code(200).send({ hello: 'world' })
57
57
  })
58
58
 
59
- fastify.listen(0, err => {
59
+ fastify.listen({ port: 0 }, err => {
60
60
  t.error(err)
61
61
  fastify.server.unref()
62
62
 
@@ -112,7 +112,7 @@ t.test('listen and onReady order', async t => {
112
112
 
113
113
  await fastify.ready()
114
114
  t.pass('trigger the onReady')
115
- await fastify.listen(0)
115
+ await fastify.listen({ port: 0 })
116
116
  t.pass('do not trigger the onReady')
117
117
 
118
118
  await fastify.close()