diff --git a/types/chai-as-promised/chai-as-promised-tests.ts b/types/chai-as-promised/chai-as-promised-tests.ts index 7e422521aa..2157f0cc3c 100644 --- a/types/chai-as-promised/chai-as-promised-tests.ts +++ b/types/chai-as-promised/chai-as-promised-tests.ts @@ -26,6 +26,7 @@ thenableNum = chai.expect(thenableNum).to.notify(() => console.log('done')); // BDD API (should) thenableNum = thenableNum.should.be.fulfilled; thenableNum = thenableNum.should.eventually.deep.equal(3); +thenableNum = thenableNum.should.eventually.become(3); thenableNum = thenableNum.should.become(3); thenableNum = thenableNum.should.be.rejected; thenableNum = thenableNum.should.be.rejectedWith(Error); diff --git a/types/chai-as-promised/index.d.ts b/types/chai-as-promised/index.d.ts index 0dde8837dd..459758aa55 100644 --- a/types/chai-as-promised/index.d.ts +++ b/types/chai-as-promised/index.d.ts @@ -1,6 +1,10 @@ -// Type definitions for chai-as-promised +// Type definitions for chai-as-promised 7.1.0 // Project: https://github.com/domenic/chai-as-promised/ -// Definitions by: jt000 , Yuki Kokubun , Leonard Thieu +// Definitions by: jt000 , +// Yuki Kokubun , +// Leonard Thieu , +// Mike Lazer-Walker , +// Matt Bishop // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// @@ -25,22 +29,25 @@ declare namespace Chai { become(expected: any): PromisedAssertion; fulfilled: PromisedAssertion; rejected: PromisedAssertion; - rejectedWith(expected: any, message?: string | RegExp): PromisedAssertion; + rejectedWith: PromisedThrow; notify(fn: Function): PromisedAssertion; } // Eventually does not have .then(), but PromisedAssertion have. interface Eventually extends PromisedLanguageChains, PromisedNumericComparison, PromisedTypeComparison { // From chai-as-promised - become(expected: PromiseLike): PromisedAssertion; + become(expected: any): PromisedAssertion; fulfilled: PromisedAssertion; rejected: PromisedAssertion; - rejectedWith(expected: any, message?: string | RegExp): PromisedAssertion; + rejectedWith: PromisedThrow; notify(fn: Function): PromisedAssertion; // From chai not: PromisedAssertion; deep: PromisedDeep; + ordered: PromisedOrdered; + nested: PromisedNested; + any: PromisedKeyFilter; all: PromisedKeyFilter; a: PromisedTypeComparison; an: PromisedTypeComparison; @@ -51,6 +58,7 @@ declare namespace Chai { false: PromisedAssertion; null: PromisedAssertion; undefined: PromisedAssertion; + NaN: PromisedAssertion; exist: PromisedAssertion; empty: PromisedAssertion; arguments: PromisedAssertion; @@ -63,20 +71,36 @@ declare namespace Chai { property: PromisedProperty; ownProperty: PromisedOwnProperty; haveOwnProperty: PromisedOwnProperty; + ownPropertyDescriptor: PromisedOwnPropertyDescriptor; + haveOwnPropertyDescriptor: PromisedOwnPropertyDescriptor; length: PromisedLength; lengthOf: PromisedLength; - match(regexp: RegExp | string, message?: string): PromisedAssertion; + match: PromisedMatch; + matches: PromisedMatch; string(string: string, message?: string): PromisedAssertion; keys: PromisedKeys; key(string: string): PromisedAssertion; throw: PromisedThrow; throws: PromisedThrow; Throw: PromisedThrow; - respondTo(method: string, message?: string): PromisedAssertion; + respondTo: PromisedRespondTo; + respondsTo: PromisedRespondTo; itself: PromisedAssertion; - satisfy(matcher: Function, message?: string): PromisedAssertion; - closeTo(expected: number, delta: number, message?: string): PromisedAssertion; + satisfy: PromisedSatisfy; + satisfies: PromisedSatisfy; + closeTo: PromisedCloseTo; + approximately: PromisedCloseTo; members: PromisedMembers; + increase: PromisedPropertyChange; + increases: PromisedPropertyChange; + decrease: PromisedPropertyChange; + decreases: PromisedPropertyChange; + change: PromisedPropertyChange; + changes: PromisedPropertyChange; + extensible: PromisedAssertion; + sealed: PromisedAssertion; + frozen: PromisedAssertion; + oneOf(list: any[], message?: string): PromisedAssertion; } interface PromisedAssertion extends Eventually, PromiseLike { @@ -99,6 +123,8 @@ declare namespace Chai { at: PromisedAssertion; of: PromisedAssertion; same: PromisedAssertion; + but: PromisedAssertion; + does: PromisedAssertion; } interface PromisedNumericComparison { @@ -129,10 +155,28 @@ declare namespace Chai { (constructor: Object, message?: string): PromisedAssertion; } - interface PromisedDeep { - equal: PromisedEqual; + interface PromisedCloseTo { + (expected: number, delta: number, message?: string): PromisedAssertion; + } + + interface PromisedNested { include: PromisedInclude; property: PromisedProperty; + members: PromisedMembers; + } + + interface PromisedDeep { + equal: PromisedEqual; + equals: PromisedEqual; + eq: PromisedEqual; + include: PromisedInclude; + property: PromisedProperty; + members: PromisedMembers; + ordered: PromisedOrdered + } + + interface PromisedOrdered { + members: PromisedMembers; } interface PromisedKeyFilter { @@ -151,6 +195,11 @@ declare namespace Chai { (name: string, message?: string): PromisedAssertion; } + interface PromisedOwnPropertyDescriptor { + (name: string, descriptor: PropertyDescriptor, message?: string): PromisedAssertion; + (name: string, message?: string): PromisedAssertion; + } + interface PromisedLength extends PromisedLanguageChains, PromisedNumericComparison { (length: number, message?: string): PromisedAssertion; } @@ -160,13 +209,21 @@ declare namespace Chai { (value: string, message?: string): PromisedAssertion; (value: number, message?: string): PromisedAssertion; keys: PromisedKeys; + deep: PromisedDeep; + ordered: PromisedOrdered; members: PromisedMembers; + any: PromisedKeyFilter; all: PromisedKeyFilter; } + interface PromisedMatch { + (regexp: RegExp | string, message?: string): PromisedAssertion; + } + interface PromisedKeys { (...keys: string[]): PromisedAssertion; (keys: any[]): PromisedAssertion; + (keys: Object): PromisedAssertion; } interface PromisedThrow { @@ -179,10 +236,22 @@ declare namespace Chai { (constructor: Function, expected?: RegExp, message?: string): PromisedAssertion; } + interface PromisedRespondTo { + (method: string, message?: string): PromisedAssertion; + } + + interface PromisedSatisfy { + (matcher: Function, message?: string): PromisedAssertion; + } + interface PromisedMembers { (set: any[], message?: string): PromisedAssertion; } + interface PromisedPropertyChange { + (object: Object, property: string, message?: string): PromisedAssertion; + } + // For Assert API interface Assert { eventually: PromisedAssert; @@ -198,7 +267,9 @@ declare namespace Chai { export interface PromisedAssert { fail(actual?: any, expected?: any, msg?: string, operator?: string): PromiseLike; + isOk(val: any, msg?: string): PromiseLike; ok(val: any, msg?: string): PromiseLike; + isNotOk(val: any, msg?: string): PromiseLike; notOk(val: any, msg?: string): PromiseLike; equal(act: any, exp: any, msg?: string): PromiseLike; @@ -210,12 +281,26 @@ declare namespace Chai { deepEqual(act: any, exp: any, msg?: string): PromiseLike; notDeepEqual(act: any, exp: any, msg?: string): PromiseLike; + isAbove(val: number, above: number, msg?: string): PromiseLike; + isAtLeast(val: number, atLeast: number, msg?: string): PromiseLike; + isAtBelow(val: number, below: number, msg?: string): PromiseLike; + isAtMost(val: number, atMost: number, msg?: string): PromiseLike; + isTrue(val: any, msg?: string): PromiseLike; isFalse(val: any, msg?: string): PromiseLike; + isNotTrue(val: any, msg?: string): PromiseLike; + isNotFalse(val: any, msg?: string): PromiseLike; + isNull(val: any, msg?: string): PromiseLike; isNotNull(val: any, msg?: string): PromiseLike; + isNaN(val: any, msg?: string): PromiseLike; + isNotNaN(val: any, msg?: string): PromiseLike; + + exists(val: any, msg?: string): PromiseLike; + notExists(val: any, msg?: string): PromiseLike; + isUndefined(val: any, msg?: string): PromiseLike; isDefined(val: any, msg?: string): PromiseLike; @@ -287,10 +372,46 @@ declare namespace Chai { operator(val: any, operator: string, val2: any, msg?: string): PromiseLike; closeTo(act: number, exp: number, delta: number, msg?: string): PromiseLike; + approximately(act: number, exp: number, delta: number, msg?: string): PromiseLike; sameMembers(set1: any[], set2: any[], msg?: string): PromiseLike; + sameDeepMembers(set1: any[], set2: any[], msg?: string): PromiseLike; + sameOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike; + notSameOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike; + sameDeepOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike; + notSameDeepOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike; + includeOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike; + notIncludeOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike; + includeDeepOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike; + notIncludeDeepOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike; includeMembers(set1: any[], set2: any[], msg?: string): PromiseLike; + includeDeepMembers(set1: any[], set2: any[], msg?: string): PromiseLike; + + oneOf(val: any, list: any[], msg?: string): PromiseLike; + + changes(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike; + doesNotChange(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike; + increases(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike; + doesNotIncrease(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike; + decreases(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike; + doesNotDecrease(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike; ifError(val: any, msg?: string): PromiseLike; + + isExtensible(obj: Object, msg?: string): PromiseLike; + isNotExtensible(obj: Object, msg?: string): PromiseLike; + + isSealed(obj: Object, msg?: string): PromiseLike; + sealed(obj: Object, msg?: string): PromiseLike; + isNotSealed(obj: Object, msg?: string): PromiseLike; + notSealed(obj: Object, msg?: string): PromiseLike; + + isFrozen(obj: Object, msg?: string): PromiseLike; + frozen(obj: Object, msg?: string): PromiseLike; + isNotFrozen(obj: Object, msg?: string): PromiseLike; + notFrozen(obj: Object, msg?: string): PromiseLike; + + isEmpty(val: any, msg?: string): PromiseLike; + isNotEmpty(val: any, msg?: string): PromiseLike; } }