6
.github/workflows/test.yml
vendored
6
.github/workflows/test.yml
vendored
@@ -24,12 +24,12 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Set Node.js 12.x
|
- name: Setup node
|
||||||
uses: actions/setup-node@v1
|
uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: {{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
|
|
||||||
- name: npm install
|
- name: npm install
|
||||||
run: npm install
|
run: npm install
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import * as httpm from '../_out';
|
|||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import * as am from '../_out/auth';
|
import * as am from '../_out/auth';
|
||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
|
import { connect } from 'http2';
|
||||||
|
|
||||||
let sampleFilePath: string = path.join(__dirname, 'testoutput.txt');
|
let sampleFilePath: string = path.join(__dirname, 'testoutput.txt');
|
||||||
|
|
||||||
@@ -18,7 +19,7 @@ describe('basics', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('constructs', () => {
|
it('constructs', () => {
|
||||||
let http: httpm.HttpClient = new httpm.HttpClient('typed-test-client-tests');
|
let http: httpm.HttpClient = new httpm.HttpClient('thttp-client-tests');
|
||||||
expect(http).toBeDefined();
|
expect(http).toBeDefined();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -34,16 +35,17 @@ describe('basics', () => {
|
|||||||
// "url": "https://httpbin.org/get"
|
// "url": "https://httpbin.org/get"
|
||||||
// }
|
// }
|
||||||
|
|
||||||
it('does basic http get request', async() => {
|
it('does basic http get request', async(done) => {
|
||||||
let res: httpm.HttpClientResponse = await _http.get('http://httpbin.org/get');
|
let res: httpm.HttpClientResponse = await _http.get('http://httpbin.org/get');
|
||||||
expect(res.message.statusCode).toBe(200);
|
expect(res.message.statusCode).toBe(200);
|
||||||
let body: string = await res.readBody();
|
let body: string = await res.readBody();
|
||||||
let obj: any = JSON.parse(body);
|
let obj: any = JSON.parse(body);
|
||||||
expect(obj.url).toBe("https://httpbin.org/get");
|
expect(obj.url).toBe("https://httpbin.org/get");
|
||||||
expect(obj.headers["User-Agent"]).toBeTruthy();
|
expect(obj.headers["User-Agent"]).toBeTruthy();
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does basic http get request with no user agent', async() => {
|
it('does basic http get request with no user agent', async(done) => {
|
||||||
let http: httpm.HttpClient = new httpm.HttpClient();
|
let http: httpm.HttpClient = new httpm.HttpClient();
|
||||||
let res: httpm.HttpClientResponse = await http.get('http://httpbin.org/get');
|
let res: httpm.HttpClientResponse = await http.get('http://httpbin.org/get');
|
||||||
expect(res.message.statusCode).toBe(200);
|
expect(res.message.statusCode).toBe(200);
|
||||||
@@ -51,17 +53,19 @@ describe('basics', () => {
|
|||||||
let obj: any = JSON.parse(body);
|
let obj: any = JSON.parse(body);
|
||||||
expect(obj.url).toBe("https://httpbin.org/get");
|
expect(obj.url).toBe("https://httpbin.org/get");
|
||||||
expect(obj.headers["User-Agent"]).toBeFalsy();
|
expect(obj.headers["User-Agent"]).toBeFalsy();
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does basic https get request', async() => {
|
it('does basic https get request', async(done) => {
|
||||||
let res: httpm.HttpClientResponse = await _http.get('https://httpbin.org/get');
|
let res: httpm.HttpClientResponse = await _http.get('https://httpbin.org/get');
|
||||||
expect(res.message.statusCode).toBe(200);
|
expect(res.message.statusCode).toBe(200);
|
||||||
let body: string = await res.readBody();
|
let body: string = await res.readBody();
|
||||||
let obj: any = JSON.parse(body);
|
let obj: any = JSON.parse(body);
|
||||||
expect(obj.url).toBe("https://httpbin.org/get");
|
expect(obj.url).toBe("https://httpbin.org/get");
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does basic http get request with default headers', async() => {
|
it('does basic http get request with default headers', async(done) => {
|
||||||
let http: httpm.HttpClient = new httpm.HttpClient('http-client-tests', [], {
|
let http: httpm.HttpClient = new httpm.HttpClient('http-client-tests', [], {
|
||||||
headers: {
|
headers: {
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json',
|
||||||
@@ -75,9 +79,10 @@ describe('basics', () => {
|
|||||||
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("https://httpbin.org/get");
|
expect(obj.url).toBe("https://httpbin.org/get");
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does basic http get request with merged headers', async() => {
|
it('does basic http get request with merged headers', async(done) => {
|
||||||
let http: httpm.HttpClient = new httpm.HttpClient('http-client-tests', [], {
|
let http: httpm.HttpClient = new httpm.HttpClient('http-client-tests', [], {
|
||||||
headers: {
|
headers: {
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json',
|
||||||
@@ -93,6 +98,7 @@ describe('basics', () => {
|
|||||||
expect(obj.headers.Accept).toBe('application/json');
|
expect(obj.headers.Accept).toBe('application/json');
|
||||||
expect(obj.headers['Content-Type']).toBe('application/x-www-form-urlencoded');
|
expect(obj.headers['Content-Type']).toBe('application/x-www-form-urlencoded');
|
||||||
expect(obj.url).toBe("https://httpbin.org/get");
|
expect(obj.url).toBe("https://httpbin.org/get");
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('pipes a get request', () => {
|
it('pipes a get request', () => {
|
||||||
@@ -107,48 +113,54 @@ describe('basics', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does basic get request with redirects', async() => {
|
it('does basic get request with redirects', async(done) => {
|
||||||
let res: httpm.HttpClientResponse = await _http.get("https://httpbin.org/redirect-to?url=" + encodeURIComponent("https://httpbin.org/get"))
|
let res: httpm.HttpClientResponse = await _http.get("https://httpbin.org/redirect-to?url=" + encodeURIComponent("https://httpbin.org/get"))
|
||||||
expect(res.message.statusCode).toBe(200);
|
expect(res.message.statusCode).toBe(200);
|
||||||
let body: string = await res.readBody();
|
let body: string = await res.readBody();
|
||||||
let obj:any = JSON.parse(body);
|
let obj:any = JSON.parse(body);
|
||||||
expect(obj.url).toBe("https://httpbin.org/get");
|
expect(obj.url).toBe("https://httpbin.org/get");
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does basic get request with redirects (303)', async() => {
|
it('does basic get request with redirects (303)', async(done) => {
|
||||||
let res: httpm.HttpClientResponse = await _http.get("https://httpbin.org/redirect-to?url=" + encodeURIComponent("https://httpbin.org/get") + '&status_code=303')
|
let res: httpm.HttpClientResponse = await _http.get("https://httpbin.org/redirect-to?url=" + encodeURIComponent("https://httpbin.org/get") + '&status_code=303')
|
||||||
expect(res.message.statusCode).toBe(200);
|
expect(res.message.statusCode).toBe(200);
|
||||||
let body: string = await res.readBody();
|
let body: string = await res.readBody();
|
||||||
let obj:any = JSON.parse(body);
|
let obj:any = JSON.parse(body);
|
||||||
expect(obj.url).toBe("https://httpbin.org/get");
|
expect(obj.url).toBe("https://httpbin.org/get");
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('returns 404 for not found get request on redirect', async() => {
|
it('returns 404 for not found get request on redirect', async(done) => {
|
||||||
let res: httpm.HttpClientResponse = await _http.get("https://httpbin.org/redirect-to?url=" + encodeURIComponent("https://httpbin.org/status/404") + '&status_code=303')
|
let res: httpm.HttpClientResponse = await _http.get("https://httpbin.org/redirect-to?url=" + encodeURIComponent("https://httpbin.org/status/404") + '&status_code=303')
|
||||||
expect(res.message.statusCode).toBe(404);
|
expect(res.message.statusCode).toBe(404);
|
||||||
let body: string = await res.readBody();
|
let body: string = await res.readBody();
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does not follow redirects if disabled', async() => {
|
it('does not follow redirects if disabled', async(done) => {
|
||||||
let http: httpm.HttpClient = new httpm.HttpClient('typed-test-client-tests', null, { allowRedirects: false });
|
let http: httpm.HttpClient = new httpm.HttpClient('typed-test-client-tests', null, { allowRedirects: false });
|
||||||
let res: httpm.HttpClientResponse = await http.get("https://httpbin.org/redirect-to?url=" + encodeURIComponent("https://httpbin.org/get"))
|
let res: httpm.HttpClientResponse = await http.get("https://httpbin.org/redirect-to?url=" + encodeURIComponent("https://httpbin.org/get"))
|
||||||
expect(res.message.statusCode).toBe(302);
|
expect(res.message.statusCode).toBe(302);
|
||||||
let body: string = await res.readBody();
|
let body: string = await res.readBody();
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does basic head request', async() => {
|
it('does basic head request', async(done) => {
|
||||||
let res: httpm.HttpClientResponse = await _http.head('http://httpbin.org/get');
|
let res: httpm.HttpClientResponse = await _http.head('http://httpbin.org/get');
|
||||||
expect(res.message.statusCode).toBe(200);
|
expect(res.message.statusCode).toBe(200);
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does basic http delete request', async() => {
|
it('does basic http delete request', async(done) => {
|
||||||
let res: httpm.HttpClientResponse = await _http.del('http://httpbin.org/delete');
|
let res: httpm.HttpClientResponse = await _http.del('http://httpbin.org/delete');
|
||||||
expect(res.message.statusCode).toBe(200);
|
expect(res.message.statusCode).toBe(200);
|
||||||
let body: string = await res.readBody();
|
let body: string = await res.readBody();
|
||||||
let obj:any = JSON.parse(body);
|
let obj:any = JSON.parse(body);
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does basic http post request', async() => {
|
it('does basic http post request', async(done) => {
|
||||||
let b: string = 'Hello World!';
|
let b: string = 'Hello World!';
|
||||||
let res: httpm.HttpClientResponse = await _http.post('http://httpbin.org/post', b);
|
let res: httpm.HttpClientResponse = await _http.post('http://httpbin.org/post', b);
|
||||||
expect(res.message.statusCode).toBe(200);
|
expect(res.message.statusCode).toBe(200);
|
||||||
@@ -156,9 +168,10 @@ describe('basics', () => {
|
|||||||
let obj:any = JSON.parse(body);
|
let obj:any = JSON.parse(body);
|
||||||
expect(obj.data).toBe(b);
|
expect(obj.data).toBe(b);
|
||||||
expect(obj.url).toBe("https://httpbin.org/post");
|
expect(obj.url).toBe("https://httpbin.org/post");
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does basic http patch request', async() => {
|
it('does basic http patch request', async(done) => {
|
||||||
let b: string = 'Hello World!';
|
let b: string = 'Hello World!';
|
||||||
let res: httpm.HttpClientResponse = await _http.patch('http://httpbin.org/patch', b);
|
let res: httpm.HttpClientResponse = await _http.patch('http://httpbin.org/patch', b);
|
||||||
expect(res.message.statusCode).toBe(200);
|
expect(res.message.statusCode).toBe(200);
|
||||||
@@ -166,17 +179,20 @@ describe('basics', () => {
|
|||||||
let obj:any = JSON.parse(body);
|
let obj:any = JSON.parse(body);
|
||||||
expect(obj.data).toBe(b);
|
expect(obj.data).toBe(b);
|
||||||
expect(obj.url).toBe("https://httpbin.org/patch");
|
expect(obj.url).toBe("https://httpbin.org/patch");
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does basic http options request', async() => {
|
it('does basic http options request', async(done) => {
|
||||||
let res: httpm.HttpClientResponse = await _http.options('http://httpbin.org');
|
let res: httpm.HttpClientResponse = await _http.options('http://httpbin.org');
|
||||||
expect(res.message.statusCode).toBe(200);
|
expect(res.message.statusCode).toBe(200);
|
||||||
let body: string = await res.readBody();
|
let body: string = await res.readBody();
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('returns 404 for not found get request', async() => {
|
it('returns 404 for not found get request', async(done) => {
|
||||||
let res: httpm.HttpClientResponse = await _http.get('http://httpbin.org/status/404');
|
let res: httpm.HttpClientResponse = await _http.get('http://httpbin.org/status/404');
|
||||||
expect(res.message.statusCode).toBe(404);
|
expect(res.message.statusCode).toBe(404);
|
||||||
let body: string = await res.readBody();
|
let body: string = await res.readBody();
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -10,34 +10,37 @@ describe('basics', () => {
|
|||||||
let _httpbin: httpm.HttpClient;
|
let _httpbin: httpm.HttpClient;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
_http = new httpm.HttpClient('typed-test-client-tests', [], { keepAlive: true });
|
_http = new httpm.HttpClient('http-client-tests', [], { keepAlive: true });
|
||||||
})
|
})
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
|
_http.dispose();
|
||||||
})
|
})
|
||||||
|
|
||||||
it('does basic http get request with keepAlive true', async() => {
|
it('does basic http get request with keepAlive true', async(done) => {
|
||||||
let res: httpm.HttpClientResponse = await _http.get('http://httpbin.org/get');
|
let res: httpm.HttpClientResponse = await _http.get('http://httpbin.org/get');
|
||||||
expect(res.message.statusCode).toBe(200);
|
expect(res.message.statusCode).toBe(200);
|
||||||
let body: string = await res.readBody();
|
let body: string = await res.readBody();
|
||||||
let obj:any = JSON.parse(body);
|
let obj:any = JSON.parse(body);
|
||||||
expect(obj.url).toBe("https://httpbin.org/get");
|
expect(obj.url).toBe("https://httpbin.org/get");
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does basic head request with keepAlive true', async() => {
|
it('does basic head request with keepAlive true', async(done) => {
|
||||||
let res: httpm.HttpClientResponse = await _http.head('http://httpbin.org/get');
|
let res: httpm.HttpClientResponse = await _http.head('http://httpbin.org/get');
|
||||||
expect(res.message.statusCode).toBe(200);
|
expect(res.message.statusCode).toBe(200);
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does basic http delete request with keepAlive true', async() => {
|
it('does basic http delete request with keepAlive true', async(done) => {
|
||||||
let res: httpm.HttpClientResponse = await _http.del('http://httpbin.org/delete');
|
let res: httpm.HttpClientResponse = await _http.del('http://httpbin.org/delete');
|
||||||
expect(res.message.statusCode).toBe(200);
|
expect(res.message.statusCode).toBe(200);
|
||||||
let body: string = await res.readBody();
|
let body: string = await res.readBody();
|
||||||
let obj:any = JSON.parse(body);
|
let obj:any = JSON.parse(body);
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does basic http post request with keepAlive true', async() => {
|
it('does basic http post request with keepAlive true', async(done) => {
|
||||||
let b: string = 'Hello World!';
|
let b: string = 'Hello World!';
|
||||||
let res: httpm.HttpClientResponse = await _http.post('http://httpbin.org/post', b);
|
let res: httpm.HttpClientResponse = await _http.post('http://httpbin.org/post', b);
|
||||||
expect(res.message.statusCode).toBe(200);
|
expect(res.message.statusCode).toBe(200);
|
||||||
@@ -45,9 +48,10 @@ describe('basics', () => {
|
|||||||
let obj:any = JSON.parse(body);
|
let obj:any = JSON.parse(body);
|
||||||
expect(obj.data).toBe(b);
|
expect(obj.data).toBe(b);
|
||||||
expect(obj.url).toBe("https://httpbin.org/post");
|
expect(obj.url).toBe("https://httpbin.org/post");
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does basic http patch request with keepAlive true', async() => {
|
it('does basic http patch request with keepAlive true', async(done) => {
|
||||||
let b: string = 'Hello World!';
|
let b: string = 'Hello World!';
|
||||||
let res: httpm.HttpClientResponse = await _http.patch('http://httpbin.org/patch', b);
|
let res: httpm.HttpClientResponse = await _http.patch('http://httpbin.org/patch', b);
|
||||||
expect(res.message.statusCode).toBe(200);
|
expect(res.message.statusCode).toBe(200);
|
||||||
@@ -55,11 +59,13 @@ describe('basics', () => {
|
|||||||
let obj:any = JSON.parse(body);
|
let obj:any = JSON.parse(body);
|
||||||
expect(obj.data).toBe(b);
|
expect(obj.data).toBe(b);
|
||||||
expect(obj.url).toBe("https://httpbin.org/patch");
|
expect(obj.url).toBe("https://httpbin.org/patch");
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does basic http options request with keepAlive true', async() => {
|
it('does basic http options request with keepAlive true', async(done) => {
|
||||||
let res: httpm.HttpClientResponse = await _http.options('http://httpbin.org');
|
let res: httpm.HttpClientResponse = await _http.options('http://httpbin.org');
|
||||||
expect(res.message.statusCode).toBe(200);
|
expect(res.message.statusCode).toBe(200);
|
||||||
let body: string = await res.readBody();
|
let body: string = await res.readBody();
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user