Skip to content

Commit

Permalink
test: add number coersion related tests
Browse files Browse the repository at this point in the history
  • Loading branch information
anonrig committed Sep 22, 2022
1 parent 1c49f34 commit e0d571b
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/server.js
Expand Up @@ -332,7 +332,7 @@ function normalizeListenArgs (args) {

function normalizePort (firstArg) {
const port = Number(firstArg)
return port >= 0 && !Number.isNaN(port) ? port : 0
return port >= 0 && !Number.isNaN(port) && Number.isInteger(port) ? port : 0
}

function logServerAddress (server) {
Expand Down
59 changes: 59 additions & 0 deletions test/reply-code.test.js
@@ -0,0 +1,59 @@
'use strict'

const t = require('tap')
const test = t.test
const Fastify = require('..')

test('code should handle null/undefined/float', t => {
t.plan(8)

const fastify = Fastify()

fastify.get('/null', function (request, reply) {
reply.status(null).send()
})

fastify.get('/undefined', function (request, reply) {
reply.status(undefined).send()
})

fastify.get('/404.5', function (request, reply) {
reply.status(404.5).send()
})

fastify.inject({
method: 'GET',
url: '/null'
}, (error, res) => {
t.error(error)
t.equal(res.statusCode, 500)
t.same(res.json(), {
statusCode: 500,
code: 'FST_ERR_BAD_STATUS_CODE',
error: 'Internal Server Error',
message: 'Called reply with an invalid status code: null'
})
})

fastify.inject({
method: 'GET',
url: '/undefined'
}, (error, res) => {
t.error(error)
t.equal(res.statusCode, 500)
t.same(res.json(), {
statusCode: 500,
code: 'FST_ERR_BAD_STATUS_CODE',
error: 'Internal Server Error',
message: 'Called reply with an invalid status code: undefined'
})
})

fastify.inject({
method: 'GET',
url: '/404.5'
}, (error, res) => {
t.error(error)
t.equal(res.statusCode, 404)
})
})
25 changes: 25 additions & 0 deletions test/server.test.js
@@ -0,0 +1,25 @@
'use strict'

const t = require('tap')
const test = t.test
const Fastify = require('..')

test('listen should accept null port', t => {
t.plan(1)

const fastify = Fastify()
t.teardown(fastify.close.bind(fastify))
fastify.listen({ port: null }, (err) => {
t.error(err)
})
})

test('listen should accept undefined port', t => {
t.plan(1)

const fastify = Fastify()
t.teardown(fastify.close.bind(fastify))
fastify.listen({ port: undefined }, (err, address) => {
t.error(err)
})
})

0 comments on commit e0d571b

Please sign in to comment.