diff --git a/promisify-supertest/promisify-supertest-tests.ts b/promisify-supertest/promisify-supertest-tests.ts
new file mode 100644
index 0000000000..cef9173b18
--- /dev/null
+++ b/promisify-supertest/promisify-supertest-tests.ts
@@ -0,0 +1,18 @@
+///
+///
+
+import * as request from 'promisify-supertest';
+import * as express from 'express';
+
+let app = express();
+
+request(app)
+ .get('/')
+ .expect(200)
+ .end()
+ .then(function(res) {
+ // blah blah blah
+ })
+ .catch(function(err) {
+ throw err;
+ });
diff --git a/promisify-supertest/promisify-supertest.d.ts b/promisify-supertest/promisify-supertest.d.ts
new file mode 100644
index 0000000000..dd9c703b42
--- /dev/null
+++ b/promisify-supertest/promisify-supertest.d.ts
@@ -0,0 +1,45 @@
+// Type definitions for promisify-supertest v1.0.0
+// Project: https://www.npmjs.com/package/promisify-supertest
+// Definitions by: Leo Liang
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+///
+
+declare module 'promisify-supertest' {
+ // Mostly copy-pasted from supertest.d.ts
+
+ import * as superagent from 'superagent';
+ import * as express from 'express';
+
+ type CallbackHandler = (err: any, res: supertest.Response) => void;
+
+ function supertest(app: express.Express): supertest.SuperTest;
+
+ module supertest {
+ function agent(app?: any): supertest.SuperTest;
+
+ interface SuperTest extends superagent.SuperAgent {
+ }
+
+ interface Test extends superagent.Request {
+ url: string;
+ serverAddress(app: any, path: string): string;
+ expect(status: number, callback?: CallbackHandler): Test;
+ expect(status: number, body: string, callback?: CallbackHandler): Test;
+ expect(body: string, callback?: CallbackHandler): Test;
+ expect(body: RegExp, callback?: CallbackHandler): Test;
+ expect(body: Object, callback?: CallbackHandler): Test;
+ expect(field: string, val: string, callback?: CallbackHandler): Test;
+ expect(field: string, val: RegExp, callback?: CallbackHandler): Test;
+ expect(checker: (res: Response) => any): Test;
+ end(callback: CallbackHandler): Test;
+ end(): Promise;
+ }
+
+ interface Response extends superagent.Response {
+ }
+ }
+
+ export = supertest;
+}