From 58697597421d259f656dad7a2a5f20140c8a8051 Mon Sep 17 00:00:00 2001 From: vvakame Date: Thu, 13 Nov 2014 23:46:14 +0900 Subject: [PATCH 1/5] add power-assert/power-assert.d.ts --- assert/assert.d.ts | 1 + power-assert/power-assert-tests.ts | 19 ++++++++++ power-assert/power-assert.d.ts | 56 ++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 power-assert/power-assert-tests.ts create mode 100644 power-assert/power-assert.d.ts diff --git a/assert/assert.d.ts b/assert/assert.d.ts index bccf4fef9..e334b87e9 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 000000000..6a6b010d3 --- /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 000000000..05d8fdf1b --- /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; +} From 0ca036228dd5c030bd709153e8cf84bd8aa36923 Mon Sep 17 00:00:00 2001 From: vvakame Date: Fri, 14 Nov 2014 00:03:20 +0900 Subject: [PATCH 2/5] add empower/empower.d.ts --- empower/empower-tests.ts | 17 +++++++++++++++++ empower/empower.d.ts | 19 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 empower/empower-tests.ts create mode 100644 empower/empower.d.ts diff --git a/empower/empower-tests.ts b/empower/empower-tests.ts new file mode 100644 index 000000000..3a5cbe150 --- /dev/null +++ b/empower/empower-tests.ts @@ -0,0 +1,17 @@ +/// + +var baseAssert: any; +var fakeFormatter: any; + +()=> { + var assert = empower(baseAssert, fakeFormatter); +}; + +var option: empower.Options = { + modifyMessageOnRethrow: false, + saveContextOnRethrow: false +}; + +()=> { + var assert = empower(baseAssert, fakeFormatter, option); +}; diff --git a/empower/empower.d.ts b/empower/empower.d.ts new file mode 100644 index 000000000..02b34cbca --- /dev/null +++ b/empower/empower.d.ts @@ -0,0 +1,19 @@ +// Type definitions for empower +// Project: https://github.com/twada/empower +// Definitions by: vvakame +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare function empower(originalAssert: any, formatter: any, options?: empower.Options): any; + +declare module empower { + export interface Options { + destructive?: boolean; + modifyMessageOnRethrow?: boolean; + saveContextOnRethrow?: boolean; + patterns?: string[]; + } +} + +declare module "empower" { + export = empower; +} From b292ad34566bcb61c74ead3817527ad036f15d12 Mon Sep 17 00:00:00 2001 From: vvakame Date: Fri, 14 Nov 2014 00:19:21 +0900 Subject: [PATCH 3/5] add power-assert-formatter/power-assert-formatter.d.ts --- .../power-assert-formatter-tests.ts | 5 ++++ .../power-assert-formatter.d.ts | 29 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 power-assert-formatter/power-assert-formatter-tests.ts create mode 100644 power-assert-formatter/power-assert-formatter.d.ts diff --git a/power-assert-formatter/power-assert-formatter-tests.ts b/power-assert-formatter/power-assert-formatter-tests.ts new file mode 100644 index 000000000..cd5a2680d --- /dev/null +++ b/power-assert-formatter/power-assert-formatter-tests.ts @@ -0,0 +1,5 @@ +/// + +powerAssertFormatter(); + +powerAssertFormatter({lineSeparator: '\n'}); diff --git a/power-assert-formatter/power-assert-formatter.d.ts b/power-assert-formatter/power-assert-formatter.d.ts new file mode 100644 index 000000000..c5ad3b6f5 --- /dev/null +++ b/power-assert-formatter/power-assert-formatter.d.ts @@ -0,0 +1,29 @@ +// Type definitions for power-assert-formatter +// Project: https://github.com/twada/power-assert-formatter +// Definitions by: vvakame +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare function powerAssertFormatter(options?: powerAssertFormatter.Options): powerAssertFormatter.Formatter; + +declare module powerAssertFormatter { + export interface Options { + lineDiffThreshold?: number; + maxDepth?: number; + outputOffset?: number; + anonymous?: string; + circular?: string; + lineSeparator?: string; + ambiguousEastAsianCharWidth?: number; + widthOf?: Function; + stringify?: Function; + diff?: Function; + writerClass?: {new (): any;}; + renderers?: any[]; // { string | Function }[] + } + + export interface Formatter { + (powerAssertContext: any): string; + } + + export function defaultOptions(): Options; +} From f399dcd26a3fa422cc0c5e937714fc977c64d292 Mon Sep 17 00:00:00 2001 From: vvakame Date: Fri, 14 Nov 2014 00:22:23 +0900 Subject: [PATCH 4/5] add power-assert/power-assert.d.ts --- power-assert/power-assert-tests.ts | 66 +++++++++++++++++++++++++++++- power-assert/power-assert.d.ts | 10 +++++ 2 files changed, 75 insertions(+), 1 deletion(-) diff --git a/power-assert/power-assert-tests.ts b/power-assert/power-assert-tests.ts index 6a6b010d3..f7be7059f 100644 --- a/power-assert/power-assert-tests.ts +++ b/power-assert/power-assert-tests.ts @@ -1,8 +1,10 @@ /// +import assert = require("power-assert"); + assert(1 + 1 - 2 === 0, "The universe isn't how it should."); -assert.deepEqual({ x: { y: 3 } }, { x: { y: 3 } }, "DEEP WENT DERP"); +assert.deepEqual({x: {y: 3}}, {x: {y: 3}}, "DEEP WENT DERP"); assert.equal(3, "3", "uses == comparator"); @@ -17,3 +19,65 @@ assert.doesNotThrow(() => { throw "a hammer at your face"; } }, undefined, "What the...*crunch*"); + + +var customizedAssert1 = assert.customize({ + output: { + maxDepth: 2 + } +}); + +customizedAssert1(1 + 1 - 2 === 0, "The universe isn't how it should."); + +customizedAssert1.deepEqual({x: {y: 3}}, {x: {y: 3}}, "DEEP WENT DERP"); + +customizedAssert1.equal(3, "3", "uses == comparator"); + +customizedAssert1.notStrictEqual(2, "2", "uses === comparator"); + +customizedAssert1.throws(() => { + throw "a hammer at your face"; +}, undefined, "DODGED IT"); + +customizedAssert1.doesNotThrow(() => { + if (false) { + throw "a hammer at your face"; + } +}, undefined, "What the...*crunch*"); + + +var customizedAssert2 = assert.customize({ + assertion: { + destructive: false, + modifyMessageOnRethrow: true, + saveContextOnRethrow: true, + patterns: [ + 'assert(value, [message])', + 'assert.ok(value, [message])', + 'assert.equal(actual, expected, [message])', + 'assert.notEqual(actual, expected, [message])', + 'assert.strictEqual(actual, expected, [message])', + 'assert.notStrictEqual(actual, expected, [message])', + 'assert.deepEqual(actual, expected, [message])', + 'assert.notDeepEqual(actual, expected, [message])' + ] + }, + output: { + lineDiffThreshold: 5, + maxDepth: 1, + anonymous: 'Object', + circular: '#@Circular#', + lineSeparator: '\n', + ambiguousEastAsianCharWidth: 2, + widthOf: () => null, + stringify: () => null, + diff: () => null, + writerClass: null, + renderers: [ + './built-in/file', + './built-in/assertion', + './built-in/diagram', + './built-in/binary-expression' + ] + } +}); diff --git a/power-assert/power-assert.d.ts b/power-assert/power-assert.d.ts index 05d8fdf1b..203edc052 100644 --- a/power-assert/power-assert.d.ts +++ b/power-assert/power-assert.d.ts @@ -5,6 +5,9 @@ // 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 { @@ -49,6 +52,13 @@ declare module assert { }; export function ifError(value:any):void; + + export interface Options { + assertion?: empower.Options; + output?: powerAssertFormatter.Options; + } + + export function customize(options:Options):typeof assert; } declare module "power-assert" { From aeb7701fbef3b7fc7261d67c025c823666ab98ea Mon Sep 17 00:00:00 2001 From: vvakame Date: Fri, 14 Nov 2014 00:22:32 +0900 Subject: [PATCH 5/5] apply code formatter --- empower/empower-tests.ts | 6 +++--- empower/empower.d.ts | 2 +- power-assert-formatter/power-assert-formatter.d.ts | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/empower/empower-tests.ts b/empower/empower-tests.ts index 3a5cbe150..27b1894c6 100644 --- a/empower/empower-tests.ts +++ b/empower/empower-tests.ts @@ -1,13 +1,13 @@ /// -var baseAssert: any; -var fakeFormatter: any; +var baseAssert:any; +var fakeFormatter:any; ()=> { var assert = empower(baseAssert, fakeFormatter); }; -var option: empower.Options = { +var option:empower.Options = { modifyMessageOnRethrow: false, saveContextOnRethrow: false }; diff --git a/empower/empower.d.ts b/empower/empower.d.ts index 02b34cbca..bf4f3d687 100644 --- a/empower/empower.d.ts +++ b/empower/empower.d.ts @@ -3,7 +3,7 @@ // Definitions by: vvakame // Definitions: https://github.com/borisyankov/DefinitelyTyped -declare function empower(originalAssert: any, formatter: any, options?: empower.Options): any; +declare function empower(originalAssert:any, formatter:any, options?:empower.Options):any; declare module empower { export interface Options { diff --git a/power-assert-formatter/power-assert-formatter.d.ts b/power-assert-formatter/power-assert-formatter.d.ts index c5ad3b6f5..d3ccb59ab 100644 --- a/power-assert-formatter/power-assert-formatter.d.ts +++ b/power-assert-formatter/power-assert-formatter.d.ts @@ -3,7 +3,7 @@ // Definitions by: vvakame // Definitions: https://github.com/borisyankov/DefinitelyTyped -declare function powerAssertFormatter(options?: powerAssertFormatter.Options): powerAssertFormatter.Formatter; +declare function powerAssertFormatter(options?:powerAssertFormatter.Options):powerAssertFormatter.Formatter; declare module powerAssertFormatter { export interface Options { @@ -22,8 +22,8 @@ declare module powerAssertFormatter { } export interface Formatter { - (powerAssertContext: any): string; + (powerAssertContext:any): string; } - export function defaultOptions(): Options; + export function defaultOptions():Options; }