diff --git a/types/chai-http/chai-http-tests.ts b/types/chai-http/chai-http-tests.ts index f4f65cae7b..a47621bd73 100644 --- a/types/chai-http/chai-http-tests.ts +++ b/types/chai-http/chai-http-tests.ts @@ -37,6 +37,25 @@ chai.request(app) .get('/protected') .auth('user', 'pass'); +// HTTPS request, from: https://github.com/visionmedia/superagent/commit/6158efbf42cb93d77c1a70887284be783dd7dabe +const ca = fs.readFileSync('ca.cert.pem'); +const key = fs.readFileSync('key.pem'); +const cert = fs.readFileSync('cert.pem'); +const callback = (err: any, res: ChaiHttp.Response) => {}; + +chai.request(app) + .post('/secure') + .ca(ca) + .key(key) + .cert(cert) + .end(callback); + +const pfx = fs.readFileSync('cert.pfx'); +chai.request(app) + .post('/secure') + .pfx(pfx) + .end(callback); + chai.request(app) .get('/search') .query({ name: 'foo', limit: 10 }); diff --git a/types/chai-http/index.d.ts b/types/chai-http/index.d.ts index 6a9404c9da..3bc1977fc7 100644 --- a/types/chai-http/index.d.ts +++ b/types/chai-http/index.d.ts @@ -9,6 +9,8 @@ /// /// +import request = require('superagent'); + declare global { namespace Chai { interface ChaiStatic { @@ -53,31 +55,14 @@ declare global { on(event: string, fn: (...args: any[]) => void): void; } - interface Request extends FinishedRequest { - attach(field: string, file: string|Buffer, filename: string): Request; - set(field: string, val: string): Request; - query(params: any): Request; - send(data: any): Request; - auth(user: string, name: string): Request; - field(name: string, val: string): Request; - buffer(): Request; - parse(fn: (res: Response, cb: (e?: Error, r?: any) => void) => void): Request; - end(callback?: (err: any, res: Response) => void): FinishedRequest; - } - - interface FinishedRequest { - then(success?: (res: T) => TR1 | PromiseLike, failure?: (err: any) => TR2 | PromiseLike): FinishedRequest; - catch(failure?: (err: any) => void): FinishedRequest; - } - - interface Agent { - get(url: string, callback?: (err: any, res: Response) => void): Request; - post(url: string, callback?: (err: any, res: Response) => void): Request; - put(url: string, callback?: (err: any, res: Response) => void): Request; - head(url: string, callback?: (err: any, res: Response) => void): Request; - del(url: string, callback?: (err: any, res: Response) => void): Request; - options(url: string, callback?: (err: any, res: Response) => void): Request; - patch(url: string, callback?: (err: any, res: Response) => void): Request; + interface Agent { + get(url: string, callback?: (err: any, res: Response) => void): request.Request; + post(url: string, callback?: (err: any, res: Response) => void): request.Request; + put(url: string, callback?: (err: any, res: Response) => void): request.Request; + head(url: string, callback?: (err: any, res: Response) => void): request.Request; + del(url: string, callback?: (err: any, res: Response) => void): request.Request; + options(url: string, callback?: (err: any, res: Response) => void): request.Request; + patch(url: string, callback?: (err: any, res: Response) => void): request.Request; } interface TypeComparison {