Skip to content

Commit

Permalink
Merge bd99563 into ad1bd68
Browse files Browse the repository at this point in the history
  • Loading branch information
vlad-cirstean committed Feb 18, 2021
2 parents ad1bd68 + bd99563 commit e13c2fd
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 23 deletions.
2 changes: 1 addition & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ module.exports = fp(function from (fastify, opts, next) {

const sourceHttp2 = req.httpVersionMajor === 2
const headers = sourceHttp2 ? filterPseudoHeaders(req.headers) : req.headers
headers.host = url.hostname
headers.host = url.host
const qs = getQueryString(url.search, req.url, opts)
let body = ''

Expand Down
71 changes: 49 additions & 22 deletions test/host-header.js
Original file line number Diff line number Diff line change
@@ -1,38 +1,65 @@
'use strict'

const t = require('tap')
const { test } = require('tap')
const Fastify = require('fastify')
const From = require('..')
const get = require('simple-get').concat
const nock = require('nock')
const got = require('got')

const instance = Fastify()
test('hostname', async (t) => {
const instance = Fastify()
t.tearDown(instance.close.bind(instance))

nock('http://httpbin.org')
.get('/ip')
.reply(200, function (uri, requestBody) {
t.is(this.req.headers.host, 'httpbin.org')
return { origin: '127.0.0.1' }
nock('http://httpbin.org')
.get('/ip')
.reply(200, function (uri, requestBody) {
t.is(this.req.headers.host, 'httpbin.org')
return { origin: '127.0.0.1' }
})

instance.get('*', (request, reply) => {
reply.from()
})

t.plan(6)
t.tearDown(instance.close.bind(instance))
instance.register(From, {
base: 'http://httpbin.org'
})

instance.get('*', (request, reply) => {
reply.from()
})
await instance.listen(0)

instance.register(From, {
base: 'http://httpbin.org'
const res = await got.get(`http://localhost:${instance.server.address().port}/ip`, {
retry: 0
})
t.strictEqual(res.statusCode, 200)
t.strictEqual(res.headers['content-type'], 'application/json')
t.strictEqual(typeof JSON.parse(res.body).origin, 'string')
})

instance.listen(0, (err) => {
t.error(err)
test('hostname and port', async (t) => {
const instance = Fastify()
t.tearDown(instance.close.bind(instance))

nock('http://httpbin.org:8080')
.get('/ip')
.reply(200, function (uri, requestBody) {
t.is(this.req.headers.host, 'httpbin.org:8080')
return { origin: '127.0.0.1' }
})

instance.get('*', (request, reply) => {
reply.from()
})

instance.register(From, {
base: 'http://httpbin.org:8080'
})

await instance.listen(0)

get(`http://localhost:${instance.server.address().port}/ip`, (err, res, data) => {
t.error(err)
t.strictEqual(res.statusCode, 200)
t.strictEqual(res.headers['content-type'], 'application/json')
t.strictEqual(typeof JSON.parse(data).origin, 'string')
const res = await got.get(`http://localhost:${instance.server.address().port}/ip`, {
retry: 0
})
t.strictEqual(res.statusCode, 200)
t.strictEqual(res.headers['content-type'], 'application/json')
t.strictEqual(typeof JSON.parse(res.body).origin, 'string')
})

0 comments on commit e13c2fd

Please sign in to comment.