diff --git a/assert/assert.d.ts b/assert/assert.d.ts
index bccf4fef9a..e334b87e9a 100644
--- a/assert/assert.d.ts
+++ b/assert/assert.d.ts
@@ -57,6 +57,7 @@ declare module assert {
// export = assert;
// }
+// move to power-assert.d.ts. do not use this definition file.
declare module "power-assert" {
export = assert;
}
diff --git a/power-assert/power-assert-tests.ts b/power-assert/power-assert-tests.ts
new file mode 100644
index 0000000000..6a6b010d32
--- /dev/null
+++ b/power-assert/power-assert-tests.ts
@@ -0,0 +1,19 @@
+///
+
+assert(1 + 1 - 2 === 0, "The universe isn't how it should.");
+
+assert.deepEqual({ x: { y: 3 } }, { x: { y: 3 } }, "DEEP WENT DERP");
+
+assert.equal(3, "3", "uses == comparator");
+
+assert.notStrictEqual(2, "2", "uses === comparator");
+
+assert.throws(() => {
+ throw "a hammer at your face";
+}, undefined, "DODGED IT");
+
+assert.doesNotThrow(() => {
+ if (false) {
+ throw "a hammer at your face";
+ }
+}, undefined, "What the...*crunch*");
diff --git a/power-assert/power-assert.d.ts b/power-assert/power-assert.d.ts
new file mode 100644
index 0000000000..05d8fdf1b0
--- /dev/null
+++ b/power-assert/power-assert.d.ts
@@ -0,0 +1,56 @@
+// Type definitions for power-assert
+// Project: https://github.com/twada/power-assert
+// Definitions by: vvakame
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+// copy from assert external module in node.d.ts
+
+declare function assert(value:any, message?:string):void;
+declare module assert {
+ export class AssertionError implements Error {
+ name:string;
+ message:string;
+ actual:any;
+ expected:any;
+ operator:string;
+ generatedMessage:boolean;
+
+ constructor(options?:{message?: string; actual?: any; expected?: any; operator?: string; stackStartFunction?: Function});
+ }
+
+ export function fail(actual?:any, expected?:any, message?:string, operator?:string):void;
+
+ export function ok(value:any, message?:string):void;
+
+ export function equal(actual:any, expected:any, message?:string):void;
+
+ export function notEqual(actual:any, expected:any, message?:string):void;
+
+ export function deepEqual(actual:any, expected:any, message?:string):void;
+
+ export function notDeepEqual(acutal:any, expected:any, message?:string):void;
+
+ export function strictEqual(actual:any, expected:any, message?:string):void;
+
+ export function notStrictEqual(actual:any, expected:any, message?:string):void;
+
+ export var throws:{
+ (block:Function, message?:string): void;
+ (block:Function, error:Function, message?:string): void;
+ (block:Function, error:RegExp, message?:string): void;
+ (block:Function, error:(err:any) => boolean, message?:string): void;
+ };
+
+ export var doesNotThrow:{
+ (block:Function, message?:string): void;
+ (block:Function, error:Function, message?:string): void;
+ (block:Function, error:RegExp, message?:string): void;
+ (block:Function, error:(err:any) => boolean, message?:string): void;
+ };
+
+ export function ifError(value:any):void;
+}
+
+declare module "power-assert" {
+ export = assert;
+}