1
0
Fork 0

Use postman-echo to replace httpbin

pull/1429/head
Francesco Renzi 2023-05-23 12:23:56 +01:00
parent 457303960f
commit 672c88ec4b
5 changed files with 126 additions and 121 deletions

View File

@ -15,18 +15,18 @@ describe('auth', () => {
bh bh
]) ])
const res: httpm.HttpClientResponse = await http.get( const res: httpm.HttpClientResponse = await http.get(
'http://httpbin.org/get' 'http://postman-echo.com/get'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
const auth: string = obj.headers.Authorization const auth: string = obj.headers.authorization
const creds: string = Buffer.from( const creds: string = Buffer.from(
auth.substring('Basic '.length), auth.substring('Basic '.length),
'base64' 'base64'
).toString() ).toString()
expect(creds).toBe('johndoe:password') expect(creds).toBe('johndoe:password')
expect(obj.url).toBe('http://httpbin.org/get') expect(obj.url).toBe('http://postman-echo.com/get')
}) })
it('does basic http get request with pat token auth', async () => { it('does basic http get request with pat token auth', async () => {
@ -39,18 +39,18 @@ describe('auth', () => {
ph ph
]) ])
const res: httpm.HttpClientResponse = await http.get( const res: httpm.HttpClientResponse = await http.get(
'http://httpbin.org/get' 'http://postman-echo.com/get'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
const auth: string = obj.headers.Authorization const auth: string = obj.headers.authorization
const creds: string = Buffer.from( const creds: string = Buffer.from(
auth.substring('Basic '.length), auth.substring('Basic '.length),
'base64' 'base64'
).toString() ).toString()
expect(creds).toBe(`PAT:${token}`) expect(creds).toBe(`PAT:${token}`)
expect(obj.url).toBe('http://httpbin.org/get') expect(obj.url).toBe('http://postman-echo.com/get')
}) })
it('does basic http get request with pat token auth', async () => { it('does basic http get request with pat token auth', async () => {
@ -61,13 +61,13 @@ describe('auth', () => {
ph ph
]) ])
const res: httpm.HttpClientResponse = await http.get( const res: httpm.HttpClientResponse = await http.get(
'http://httpbin.org/get' 'http://postman-echo.com/get'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
const auth: string = obj.headers.Authorization const auth: string = obj.headers.authorization
expect(auth).toBe(`Bearer ${token}`) expect(auth).toBe(`Bearer ${token}`)
expect(obj.url).toBe('http://httpbin.org/get') expect(obj.url).toBe('http://postman-echo.com/get')
}) })
}) })

View File

@ -33,44 +33,44 @@ describe('basics', () => {
// "args": {}, // "args": {},
// "headers": { // "headers": {
// "Connection": "close", // "Connection": "close",
// "Host": "httpbin.org", // "Host": "postman-echo.com",
// "User-Agent": "typed-test-client-tests" // "user-agent": "typed-test-client-tests"
// }, // },
// "origin": "173.95.152.44", // "origin": "173.95.152.44",
// "url": "https://httpbin.org/get" // "url": "https://postman-echo.com/get"
// } // }
it('does basic http get request', async () => { it('does basic http get request', async () => {
const res: httpm.HttpClientResponse = await _http.get( const res: httpm.HttpClientResponse = await _http.get(
'http://httpbin.org/get' 'http://postman-echo.com/get'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.url).toBe('http://httpbin.org/get') expect(obj.url).toBe('http://postman-echo.com/get')
expect(obj.headers['User-Agent']).toBeTruthy() expect(obj.headers['user-agent']).toBeTruthy()
}) })
it('does basic http get request with no user agent', async () => { it('does basic http get request with no user agent', async () => {
const http: httpm.HttpClient = new httpm.HttpClient() const http: httpm.HttpClient = new httpm.HttpClient()
const res: httpm.HttpClientResponse = await http.get( const res: httpm.HttpClientResponse = await http.get(
'http://httpbin.org/get' 'http://postman-echo.com/get'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.url).toBe('http://httpbin.org/get') expect(obj.url).toBe('http://postman-echo.com/get')
expect(obj.headers['User-Agent']).toBeFalsy() expect(obj.headers['user-agent']).toBeFalsy()
}) })
it('does basic https get request', async () => { it('does basic https get request', async () => {
const res: httpm.HttpClientResponse = await _http.get( const res: httpm.HttpClientResponse = await _http.get(
'https://httpbin.org/get' 'https://postman-echo.com/get'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.url).toBe('https://httpbin.org/get') expect(obj.url).toBe('https://postman-echo.com/get')
}) })
it('does basic http get request with default headers', async () => { it('does basic http get request with default headers', async () => {
@ -85,14 +85,14 @@ describe('basics', () => {
} }
) )
const res: httpm.HttpClientResponse = await http.get( const res: httpm.HttpClientResponse = await http.get(
'http://httpbin.org/get' 'http://postman-echo.com/get'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.headers.Accept).toBe('application/json') expect(obj.headers.accept).toBe('application/json')
expect(obj.headers['Content-Type']).toBe('application/json') expect(obj.headers['content-type']).toBe('application/json')
expect(obj.url).toBe('http://httpbin.org/get') expect(obj.url).toBe('http://postman-echo.com/get')
}) })
it('does basic http get request with merged headers', async () => { it('does basic http get request with merged headers', async () => {
@ -107,7 +107,7 @@ describe('basics', () => {
} }
) )
const res: httpm.HttpClientResponse = await http.get( const res: httpm.HttpClientResponse = await http.get(
'http://httpbin.org/get', 'http://postman-echo.com/get',
{ {
'content-type': 'application/x-www-form-urlencoded' 'content-type': 'application/x-www-form-urlencoded'
} }
@ -115,22 +115,22 @@ describe('basics', () => {
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.headers.Accept).toBe('application/json') expect(obj.headers.accept).toBe('application/json')
expect(obj.headers['Content-Type']).toBe( expect(obj.headers['content-type']).toBe(
'application/x-www-form-urlencoded' 'application/x-www-form-urlencoded'
) )
expect(obj.url).toBe('http://httpbin.org/get') expect(obj.url).toBe('http://postman-echo.com/get')
}) })
it('pipes a get request', async () => { it('pipes a get request', async () => {
return new Promise<void>(async resolve => { return new Promise<void>(async resolve => {
const file = fs.createWriteStream(sampleFilePath) const file = fs.createWriteStream(sampleFilePath)
;(await _http.get('https://httpbin.org/get')).message ;(await _http.get('https://postman-echo.com/get')).message
.pipe(file) .pipe(file)
.on('close', () => { .on('close', () => {
const body: string = fs.readFileSync(sampleFilePath).toString() const body: string = fs.readFileSync(sampleFilePath).toString()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.url).toBe('https://httpbin.org/get') expect(obj.url).toBe('https://postman-echo.com/get')
resolve() resolve()
}) })
}) })
@ -138,32 +138,32 @@ describe('basics', () => {
it('does basic get request with redirects', async () => { it('does basic get request with redirects', async () => {
const res: httpm.HttpClientResponse = await _http.get( const res: httpm.HttpClientResponse = await _http.get(
`https://httpbin.org/redirect-to?url=${encodeURIComponent( `https://postman-echo.com/redirect-to?url=${encodeURIComponent(
'https://httpbin.org/get' 'https://postman-echo.com/get'
)}` )}`
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.url).toBe('https://httpbin.org/get') expect(obj.url).toBe('https://postman-echo.com/get')
}) })
it('does basic get request with redirects (303)', async () => { it('does basic get request with redirects (303)', async () => {
const res: httpm.HttpClientResponse = await _http.get( const res: httpm.HttpClientResponse = await _http.get(
`https://httpbin.org/redirect-to?url=${encodeURIComponent( `https://postman-echo.com/redirect-to?url=${encodeURIComponent(
'https://httpbin.org/get' 'https://postman-echo.com/get'
)}&status_code=303` )}&status_code=303`
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.url).toBe('https://httpbin.org/get') expect(obj.url).toBe('https://postman-echo.com/get')
}) })
it('returns 404 for not found get request on redirect', async () => { it('returns 404 for not found get request on redirect', async () => {
const res: httpm.HttpClientResponse = await _http.get( const res: httpm.HttpClientResponse = await _http.get(
`https://httpbin.org/redirect-to?url=${encodeURIComponent( `https://postman-echo.com/redirect-to?url=${encodeURIComponent(
'https://httpbin.org/status/404' 'https://postman-echo.com/status/404'
)}&status_code=303` )}&status_code=303`
) )
expect(res.message.statusCode).toBe(404) expect(res.message.statusCode).toBe(404)
@ -177,8 +177,8 @@ describe('basics', () => {
{allowRedirects: false} {allowRedirects: false}
) )
const res: httpm.HttpClientResponse = await http.get( const res: httpm.HttpClientResponse = await http.get(
`https://httpbin.org/redirect-to?url=${encodeURIComponent( `https://postman-echo.com/redirect-to?url=${encodeURIComponent(
'https://httpbin.org/get' 'https://postman-echo.com/get'
)}` )}`
) )
expect(res.message.statusCode).toBe(302) expect(res.message.statusCode).toBe(302)
@ -191,8 +191,8 @@ describe('basics', () => {
authorization: 'shhh' authorization: 'shhh'
} }
const res: httpm.HttpClientResponse = await _http.get( const res: httpm.HttpClientResponse = await _http.get(
`https://httpbin.org/redirect-to?url=${encodeURIComponent( `https://postman-echo.com/redirect-to?url=${encodeURIComponent(
'https://www.httpbin.org/get' 'https://www.postman-echo.com/get'
)}`, )}`,
headers headers
) )
@ -201,10 +201,10 @@ describe('basics', () => {
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
// httpbin "fixes" the casing // httpbin "fixes" the casing
expect(obj.headers['Accept']).toBe('application/json') expect(obj.headers[httpm.Headers.Accept]).toBe('application/json')
expect(obj.headers['Authorization']).toBeUndefined() expect(obj.headers['Authorization']).toBeUndefined()
expect(obj.headers['authorization']).toBeUndefined() expect(obj.headers['authorization']).toBeUndefined()
expect(obj.url).toBe('https://www.httpbin.org/get') expect(obj.url).toBe('https://www.postman-echo.com/get')
}) })
it('does not pass Auth with diff hostname redirects', async () => { it('does not pass Auth with diff hostname redirects', async () => {
@ -213,8 +213,8 @@ describe('basics', () => {
Authorization: 'shhh' Authorization: 'shhh'
} }
const res: httpm.HttpClientResponse = await _http.get( const res: httpm.HttpClientResponse = await _http.get(
`https://httpbin.org/redirect-to?url=${encodeURIComponent( `https://postman-echo.com/redirect-to?url=${encodeURIComponent(
'https://www.httpbin.org/get' 'https://www.postman-echo.com/get'
)}`, )}`,
headers headers
) )
@ -223,22 +223,22 @@ describe('basics', () => {
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
// httpbin "fixes" the casing // httpbin "fixes" the casing
expect(obj.headers['Accept']).toBe('application/json') expect(obj.headers[httpm.Headers.Accept]).toBe('application/json')
expect(obj.headers['Authorization']).toBeUndefined() expect(obj.headers['Authorization']).toBeUndefined()
expect(obj.headers['authorization']).toBeUndefined() expect(obj.headers['authorization']).toBeUndefined()
expect(obj.url).toBe('https://www.httpbin.org/get') expect(obj.url).toBe('https://www.postman-echo.com/get')
}) })
it('does basic head request', async () => { it('does basic head request', async () => {
const res: httpm.HttpClientResponse = await _http.head( const res: httpm.HttpClientResponse = await _http.head(
'http://httpbin.org/get' 'http://postman-echo.com/get'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
}) })
it('does basic http delete request', async () => { it('does basic http delete request', async () => {
const res: httpm.HttpClientResponse = await _http.del( const res: httpm.HttpClientResponse = await _http.del(
'http://httpbin.org/delete' 'http://postman-echo.com/delete'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
@ -248,32 +248,32 @@ describe('basics', () => {
it('does basic http post request', async () => { it('does basic http post request', async () => {
const b = 'Hello World!' const b = 'Hello World!'
const res: httpm.HttpClientResponse = await _http.post( const res: httpm.HttpClientResponse = await _http.post(
'http://httpbin.org/post', 'http://postman-echo.com/post',
b b
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.data).toBe(b) expect(obj.data).toBe(b)
expect(obj.url).toBe('http://httpbin.org/post') expect(obj.url).toBe('http://postman-echo.com/post')
}) })
it('does basic http patch request', async () => { it('does basic http patch request', async () => {
const b = 'Hello World!' const b = 'Hello World!'
const res: httpm.HttpClientResponse = await _http.patch( const res: httpm.HttpClientResponse = await _http.patch(
'http://httpbin.org/patch', 'http://postman-echo.com/patch',
b b
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.data).toBe(b) expect(obj.data).toBe(b)
expect(obj.url).toBe('http://httpbin.org/patch') expect(obj.url).toBe('http://postman-echo.com/patch')
}) })
it('does basic http options request', async () => { it('does basic http options request', async () => {
const res: httpm.HttpClientResponse = await _http.options( const res: httpm.HttpClientResponse = await _http.options(
'http://httpbin.org' 'http://postman-echo.com'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
await res.readBody() await res.readBody()
@ -281,28 +281,30 @@ describe('basics', () => {
it('returns 404 for not found get request', async () => { it('returns 404 for not found get request', async () => {
const res: httpm.HttpClientResponse = await _http.get( const res: httpm.HttpClientResponse = await _http.get(
'http://httpbin.org/status/404' 'http://postman-echo.com/status/404'
) )
expect(res.message.statusCode).toBe(404) expect(res.message.statusCode).toBe(404)
await res.readBody() await res.readBody()
}) })
it('gets a json object', async () => { it('gets a json object', async () => {
const jsonObj = await _http.getJson<HttpBinData>('https://httpbin.org/get') const jsonObj = await _http.getJson<HttpBinData>(
'https://postman-echo.com/get'
)
expect(jsonObj.statusCode).toBe(200) expect(jsonObj.statusCode).toBe(200)
expect(jsonObj.result).toBeDefined() expect(jsonObj.result).toBeDefined()
expect(jsonObj.result?.url).toBe('https://httpbin.org/get') expect(jsonObj.result?.url).toBe('https://postman-echo.com/get')
expect(jsonObj.result?.headers['Accept']).toBe( expect(jsonObj.result?.headers[httpm.Headers.Accept]).toBe(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
expect(jsonObj.headers[httpm.Headers.ContentType]).toBe( expect(jsonObj.headers['content-type']).toContain(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
}) })
it('getting a non existent json object returns null', async () => { it('getting a non existent json object returns null', async () => {
const jsonObj = await _http.getJson<HttpBinData>( const jsonObj = await _http.getJson<HttpBinData>(
'https://httpbin.org/status/404' 'https://postman-echo.com/status/404'
) )
expect(jsonObj.statusCode).toBe(404) expect(jsonObj.statusCode).toBe(404)
expect(jsonObj.result).toBeNull() expect(jsonObj.result).toBeNull()
@ -311,20 +313,20 @@ describe('basics', () => {
it('posts a json object', async () => { it('posts a json object', async () => {
const res = {name: 'foo'} const res = {name: 'foo'}
const restRes = await _http.postJson<HttpBinData>( const restRes = await _http.postJson<HttpBinData>(
'https://httpbin.org/post', 'https://postman-echo.com/post',
res res
) )
expect(restRes.statusCode).toBe(200) expect(restRes.statusCode).toBe(200)
expect(restRes.result).toBeDefined() expect(restRes.result).toBeDefined()
expect(restRes.result?.url).toBe('https://httpbin.org/post') expect(restRes.result?.url).toBe('https://postman-echo.com/post')
expect(restRes.result?.json.name).toBe('foo') expect(restRes.result?.json.name).toBe('foo')
expect(restRes.result?.headers['Accept']).toBe( expect(restRes.result?.headers[httpm.Headers.Accept]).toBe(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
expect(restRes.result?.headers['Content-Type']).toBe( expect(restRes.result?.headers['content-type']).toBe(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
expect(restRes.headers[httpm.Headers.ContentType]).toBe( expect(restRes.headers['content-type']).toContain(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
}) })
@ -332,21 +334,21 @@ describe('basics', () => {
it('puts a json object', async () => { it('puts a json object', async () => {
const res = {name: 'foo'} const res = {name: 'foo'}
const restRes = await _http.putJson<HttpBinData>( const restRes = await _http.putJson<HttpBinData>(
'https://httpbin.org/put', 'https://postman-echo.com/put',
res res
) )
expect(restRes.statusCode).toBe(200) expect(restRes.statusCode).toBe(200)
expect(restRes.result).toBeDefined() expect(restRes.result).toBeDefined()
expect(restRes.result?.url).toBe('https://httpbin.org/put') expect(restRes.result?.url).toBe('https://postman-echo.com/put')
expect(restRes.result?.json.name).toBe('foo') expect(restRes.result?.json.name).toBe('foo')
expect(restRes.result?.headers['Accept']).toBe( expect(restRes.result?.headers[httpm.Headers.Accept]).toBe(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
expect(restRes.result?.headers['Content-Type']).toBe( expect(restRes.result?.headers['content-type']).toBe(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
expect(restRes.headers[httpm.Headers.ContentType]).toBe( expect(restRes.headers['content-type']).toContain(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
}) })
@ -354,20 +356,20 @@ describe('basics', () => {
it('patch a json object', async () => { it('patch a json object', async () => {
const res = {name: 'foo'} const res = {name: 'foo'}
const restRes = await _http.patchJson<HttpBinData>( const restRes = await _http.patchJson<HttpBinData>(
'https://httpbin.org/patch', 'https://postman-echo.com/patch',
res res
) )
expect(restRes.statusCode).toBe(200) expect(restRes.statusCode).toBe(200)
expect(restRes.result).toBeDefined() expect(restRes.result).toBeDefined()
expect(restRes.result?.url).toBe('https://httpbin.org/patch') expect(restRes.result?.url).toBe('https://postman-echo.com/patch')
expect(restRes.result?.json.name).toBe('foo') expect(restRes.result?.json.name).toBe('foo')
expect(restRes.result?.headers['Accept']).toBe( expect(restRes.result?.headers[httpm.Headers.Accept]).toBe(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
expect(restRes.result?.headers['Content-Type']).toBe( expect(restRes.result?.headers['content-type']).toBe(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
expect(restRes.headers[httpm.Headers.ContentType]).toBe( expect(restRes.headers['content-type']).toContain(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
}) })

View File

@ -12,11 +12,11 @@ describe('headers', () => {
it('preserves existing headers on getJson', async () => { it('preserves existing headers on getJson', async () => {
const additionalHeaders = {[httpm.Headers.Accept]: 'foo'} const additionalHeaders = {[httpm.Headers.Accept]: 'foo'}
let jsonObj = await _http.getJson<any>( let jsonObj = await _http.getJson<any>(
'https://httpbin.org/get', 'https://postman-echo.com/get',
additionalHeaders additionalHeaders
) )
expect(jsonObj.result.headers['Accept']).toBe('foo') expect(jsonObj.result.headers[httpm.Headers.Accept]).toBe('foo')
expect(jsonObj.headers[httpm.Headers.ContentType]).toBe( expect(jsonObj.headers[httpm.Headers.ContentType]).toContain(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
@ -26,9 +26,9 @@ describe('headers', () => {
[httpm.Headers.Accept]: 'baz' [httpm.Headers.Accept]: 'baz'
} }
} }
jsonObj = await httpWithHeaders.getJson<any>('https://httpbin.org/get') jsonObj = await httpWithHeaders.getJson<any>('https://postman-echo.com/get')
expect(jsonObj.result.headers['Accept']).toBe('baz') expect(jsonObj.result.headers[httpm.Headers.Accept]).toBe('baz')
expect(jsonObj.headers[httpm.Headers.ContentType]).toBe( expect(jsonObj.headers[httpm.Headers.ContentType]).toContain(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
}) })
@ -36,12 +36,12 @@ describe('headers', () => {
it('preserves existing headers on postJson', async () => { it('preserves existing headers on postJson', async () => {
const additionalHeaders = {[httpm.Headers.Accept]: 'foo'} const additionalHeaders = {[httpm.Headers.Accept]: 'foo'}
let jsonObj = await _http.postJson<any>( let jsonObj = await _http.postJson<any>(
'https://httpbin.org/post', 'https://postman-echo.com/post',
{}, {},
additionalHeaders additionalHeaders
) )
expect(jsonObj.result.headers['Accept']).toBe('foo') expect(jsonObj.result.headers[httpm.Headers.Accept]).toBe('foo')
expect(jsonObj.headers[httpm.Headers.ContentType]).toBe( expect(jsonObj.headers[httpm.Headers.ContentType]).toContain(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
@ -52,11 +52,11 @@ describe('headers', () => {
} }
} }
jsonObj = await httpWithHeaders.postJson<any>( jsonObj = await httpWithHeaders.postJson<any>(
'https://httpbin.org/post', 'https://postman-echo.com/post',
{} {}
) )
expect(jsonObj.result.headers['Accept']).toBe('baz') expect(jsonObj.result.headers[httpm.Headers.Accept]).toBe('baz')
expect(jsonObj.headers[httpm.Headers.ContentType]).toBe( expect(jsonObj.headers[httpm.Headers.ContentType]).toContain(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
}) })
@ -64,12 +64,12 @@ describe('headers', () => {
it('preserves existing headers on putJson', async () => { it('preserves existing headers on putJson', async () => {
const additionalHeaders = {[httpm.Headers.Accept]: 'foo'} const additionalHeaders = {[httpm.Headers.Accept]: 'foo'}
let jsonObj = await _http.putJson<any>( let jsonObj = await _http.putJson<any>(
'https://httpbin.org/put', 'https://postman-echo.com/put',
{}, {},
additionalHeaders additionalHeaders
) )
expect(jsonObj.result.headers['Accept']).toBe('foo') expect(jsonObj.result.headers[httpm.Headers.Accept]).toBe('foo')
expect(jsonObj.headers[httpm.Headers.ContentType]).toBe( expect(jsonObj.headers[httpm.Headers.ContentType]).toContain(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
@ -79,9 +79,12 @@ describe('headers', () => {
[httpm.Headers.Accept]: 'baz' [httpm.Headers.Accept]: 'baz'
} }
} }
jsonObj = await httpWithHeaders.putJson<any>('https://httpbin.org/put', {}) jsonObj = await httpWithHeaders.putJson<any>(
expect(jsonObj.result.headers['Accept']).toBe('baz') 'https://postman-echo.com/put',
expect(jsonObj.headers[httpm.Headers.ContentType]).toBe( {}
)
expect(jsonObj.result.headers[httpm.Headers.Accept]).toBe('baz')
expect(jsonObj.headers[httpm.Headers.ContentType]).toContain(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
}) })
@ -89,12 +92,12 @@ describe('headers', () => {
it('preserves existing headers on patchJson', async () => { it('preserves existing headers on patchJson', async () => {
const additionalHeaders = {[httpm.Headers.Accept]: 'foo'} const additionalHeaders = {[httpm.Headers.Accept]: 'foo'}
let jsonObj = await _http.patchJson<any>( let jsonObj = await _http.patchJson<any>(
'https://httpbin.org/patch', 'https://postman-echo.com/patch',
{}, {},
additionalHeaders additionalHeaders
) )
expect(jsonObj.result.headers['Accept']).toBe('foo') expect(jsonObj.result.headers[httpm.Headers.Accept]).toBe('foo')
expect(jsonObj.headers[httpm.Headers.ContentType]).toBe( expect(jsonObj.headers[httpm.Headers.ContentType]).toContain(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
@ -105,11 +108,11 @@ describe('headers', () => {
} }
} }
jsonObj = await httpWithHeaders.patchJson<any>( jsonObj = await httpWithHeaders.patchJson<any>(
'https://httpbin.org/patch', 'https://postman-echo.com/patch',
{} {}
) )
expect(jsonObj.result.headers['Accept']).toBe('baz') expect(jsonObj.result.headers[httpm.Headers.Accept]).toBe('baz')
expect(jsonObj.headers[httpm.Headers.ContentType]).toBe( expect(jsonObj.headers[httpm.Headers.ContentType]).toContain(
httpm.MediaTypes.ApplicationJson httpm.MediaTypes.ApplicationJson
) )
}) })

View File

@ -13,24 +13,24 @@ describe('basics', () => {
it('does basic http get request with keepAlive true', async () => { it('does basic http get request with keepAlive true', async () => {
const res: httpm.HttpClientResponse = await _http.get( const res: httpm.HttpClientResponse = await _http.get(
'http://httpbin.org/get' 'http://postman-echo.com/get'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.url).toBe('http://httpbin.org/get') expect(obj.url).toBe('http://postman-echo.com/get')
}) })
it('does basic head request with keepAlive true', async () => { it('does basic head request with keepAlive true', async () => {
const res: httpm.HttpClientResponse = await _http.head( const res: httpm.HttpClientResponse = await _http.head(
'http://httpbin.org/get' 'http://postman-echo.com/get'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
}) })
it('does basic http delete request with keepAlive true', async () => { it('does basic http delete request with keepAlive true', async () => {
const res: httpm.HttpClientResponse = await _http.del( const res: httpm.HttpClientResponse = await _http.del(
'http://httpbin.org/delete' 'http://postman-echo.com/delete'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
@ -40,32 +40,32 @@ describe('basics', () => {
it('does basic http post request with keepAlive true', async () => { it('does basic http post request with keepAlive true', async () => {
const b = 'Hello World!' const b = 'Hello World!'
const res: httpm.HttpClientResponse = await _http.post( const res: httpm.HttpClientResponse = await _http.post(
'http://httpbin.org/post', 'http://postman-echo.com/post',
b b
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.data).toBe(b) expect(obj.data).toBe(b)
expect(obj.url).toBe('http://httpbin.org/post') expect(obj.url).toBe('http://postman-echo.com/post')
}) })
it('does basic http patch request with keepAlive true', async () => { it('does basic http patch request with keepAlive true', async () => {
const b = 'Hello World!' const b = 'Hello World!'
const res: httpm.HttpClientResponse = await _http.patch( const res: httpm.HttpClientResponse = await _http.patch(
'http://httpbin.org/patch', 'http://postman-echo.com/patch',
b b
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.data).toBe(b) expect(obj.data).toBe(b)
expect(obj.url).toBe('http://httpbin.org/patch') expect(obj.url).toBe('http://postman-echo.com/patch')
}) })
it('does basic http options request with keepAlive true', async () => { it('does basic http options request with keepAlive true', async () => {
const res: httpm.HttpClientResponse = await _http.options( const res: httpm.HttpClientResponse = await _http.options(
'http://httpbin.org' 'http://postman-echo.com'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
await res.readBody() await res.readBody()

View File

@ -192,26 +192,26 @@ describe('proxy', () => {
process.env['http_proxy'] = _proxyUrl process.env['http_proxy'] = _proxyUrl
const httpClient = new httpm.HttpClient() const httpClient = new httpm.HttpClient()
const res: httpm.HttpClientResponse = await httpClient.get( const res: httpm.HttpClientResponse = await httpClient.get(
'http://httpbin.org/get' 'http://postman-echo.com/get'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.url).toBe('http://httpbin.org/get') expect(obj.url).toBe('http://postman-echo.com/get')
expect(_proxyConnects).toEqual(['httpbin.org:80']) expect(_proxyConnects).toEqual(['postman-echo.com:80'])
}) })
it('HttoClient does basic http get request when bypass proxy', async () => { it('HttoClient does basic http get request when bypass proxy', async () => {
process.env['http_proxy'] = _proxyUrl process.env['http_proxy'] = _proxyUrl
process.env['no_proxy'] = 'httpbin.org' process.env['no_proxy'] = 'postman-echo.com'
const httpClient = new httpm.HttpClient() const httpClient = new httpm.HttpClient()
const res: httpm.HttpClientResponse = await httpClient.get( const res: httpm.HttpClientResponse = await httpClient.get(
'http://httpbin.org/get' 'http://postman-echo.com/get'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.url).toBe('http://httpbin.org/get') expect(obj.url).toBe('http://postman-echo.com/get')
expect(_proxyConnects).toHaveLength(0) expect(_proxyConnects).toHaveLength(0)
}) })
@ -219,26 +219,26 @@ describe('proxy', () => {
process.env['https_proxy'] = _proxyUrl process.env['https_proxy'] = _proxyUrl
const httpClient = new httpm.HttpClient() const httpClient = new httpm.HttpClient()
const res: httpm.HttpClientResponse = await httpClient.get( const res: httpm.HttpClientResponse = await httpClient.get(
'https://httpbin.org/get' 'https://postman-echo.com/get'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.url).toBe('https://httpbin.org/get') expect(obj.url).toBe('https://postman-echo.com/get')
expect(_proxyConnects).toEqual(['httpbin.org:443']) expect(_proxyConnects).toEqual(['postman-echo.com:443'])
}) })
it('HttpClient does basic https get request when bypass proxy', async () => { it('HttpClient does basic https get request when bypass proxy', async () => {
process.env['https_proxy'] = _proxyUrl process.env['https_proxy'] = _proxyUrl
process.env['no_proxy'] = 'httpbin.org' process.env['no_proxy'] = 'postman-echo.com'
const httpClient = new httpm.HttpClient() const httpClient = new httpm.HttpClient()
const res: httpm.HttpClientResponse = await httpClient.get( const res: httpm.HttpClientResponse = await httpClient.get(
'https://httpbin.org/get' 'https://postman-echo.com/get'
) )
expect(res.message.statusCode).toBe(200) expect(res.message.statusCode).toBe(200)
const body: string = await res.readBody() const body: string = await res.readBody()
const obj = JSON.parse(body) const obj = JSON.parse(body)
expect(obj.url).toBe('https://httpbin.org/get') expect(obj.url).toBe('https://postman-echo.com/get')
expect(_proxyConnects).toHaveLength(0) expect(_proxyConnects).toHaveLength(0)
}) })