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 {