diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4e63b52..9f424e3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,12 +24,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v1 + uses: actions/checkout@v2 - - name: Set Node.js 12.x + - name: Setup node uses: actions/setup-node@v1 with: - node-version: {{ matrix.node-version }} + node-version: ${{ matrix.node-version }} - name: npm install run: npm install diff --git a/__tests__/basics.test.ts b/__tests__/basics.test.ts index 86ac5da..0706162 100644 --- a/__tests__/basics.test.ts +++ b/__tests__/basics.test.ts @@ -2,6 +2,7 @@ import * as httpm from '../_out'; import * as path from 'path'; import * as am from '../_out/auth'; import * as fs from 'fs'; +import { connect } from 'http2'; let sampleFilePath: string = path.join(__dirname, 'testoutput.txt'); @@ -18,7 +19,7 @@ describe('basics', () => { }) 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(); }); @@ -34,16 +35,17 @@ describe('basics', () => { // "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'); expect(res.message.statusCode).toBe(200); let body: string = await res.readBody(); let obj: any = JSON.parse(body); expect(obj.url).toBe("https://httpbin.org/get"); 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 res: httpm.HttpClientResponse = await http.get('http://httpbin.org/get'); expect(res.message.statusCode).toBe(200); @@ -51,17 +53,19 @@ describe('basics', () => { let obj: any = JSON.parse(body); expect(obj.url).toBe("https://httpbin.org/get"); 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'); expect(res.message.statusCode).toBe(200); let body: string = await res.readBody(); let obj: any = JSON.parse(body); 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', [], { headers: { 'Accept': 'application/json', @@ -75,9 +79,10 @@ describe('basics', () => { expect(obj.headers.Accept).toBe('application/json'); expect(obj.headers['Content-Type']).toBe('application/json'); 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', [], { headers: { 'Accept': 'application/json', @@ -93,6 +98,7 @@ describe('basics', () => { expect(obj.headers.Accept).toBe('application/json'); expect(obj.headers['Content-Type']).toBe('application/x-www-form-urlencoded'); expect(obj.url).toBe("https://httpbin.org/get"); + done(); }); 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")) expect(res.message.statusCode).toBe(200); let body: string = await res.readBody(); let obj:any = JSON.parse(body); 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') expect(res.message.statusCode).toBe(200); let body: string = await res.readBody(); let obj:any = JSON.parse(body); 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') expect(res.message.statusCode).toBe(404); 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 res: httpm.HttpClientResponse = await http.get("https://httpbin.org/redirect-to?url=" + encodeURIComponent("https://httpbin.org/get")) expect(res.message.statusCode).toBe(302); 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'); 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'); expect(res.message.statusCode).toBe(200); let body: string = await res.readBody(); 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 res: httpm.HttpClientResponse = await _http.post('http://httpbin.org/post', b); expect(res.message.statusCode).toBe(200); @@ -156,9 +168,10 @@ describe('basics', () => { let obj:any = JSON.parse(body); expect(obj.data).toBe(b); 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 res: httpm.HttpClientResponse = await _http.patch('http://httpbin.org/patch', b); expect(res.message.statusCode).toBe(200); @@ -166,17 +179,20 @@ describe('basics', () => { let obj:any = JSON.parse(body); expect(obj.data).toBe(b); 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'); expect(res.message.statusCode).toBe(200); 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'); expect(res.message.statusCode).toBe(404); let body: string = await res.readBody(); + done(); }); }) diff --git a/__tests__/keepalive.test.ts b/__tests__/keepalive.test.ts index 847b2ed..1afe802 100644 --- a/__tests__/keepalive.test.ts +++ b/__tests__/keepalive.test.ts @@ -10,34 +10,37 @@ describe('basics', () => { let _httpbin: httpm.HttpClient; beforeEach(() => { - _http = new httpm.HttpClient('typed-test-client-tests', [], { keepAlive: true }); + _http = new httpm.HttpClient('http-client-tests', [], { keepAlive: true }); }) 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'); expect(res.message.statusCode).toBe(200); let body: string = await res.readBody(); let obj:any = JSON.parse(body); 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'); 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'); expect(res.message.statusCode).toBe(200); let body: string = await res.readBody(); 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 res: httpm.HttpClientResponse = await _http.post('http://httpbin.org/post', b); expect(res.message.statusCode).toBe(200); @@ -45,9 +48,10 @@ describe('basics', () => { let obj:any = JSON.parse(body); expect(obj.data).toBe(b); 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 res: httpm.HttpClientResponse = await _http.patch('http://httpbin.org/patch', b); expect(res.message.statusCode).toBe(200); @@ -55,11 +59,13 @@ describe('basics', () => { let obj:any = JSON.parse(body); expect(obj.data).toBe(b); 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'); expect(res.message.statusCode).toBe(200); let body: string = await res.readBody(); + done(); }); });