// Type definitions for chai-as-promised 7.1.0 // Project: https://github.com/domenic/chai-as-promised/ // Definitions by: jt000 , // Yuki Kokubun , // Leonard Thieu , // Mike Lazer-Walker , // Matt Bishop // William Orr // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 3.0 /// declare module 'chai-as-promised' { interface ChaiAsPromised extends Chai.ChaiPlugin { transferPromiseness(assertion: Chai.PromisedAssertion, promise: PromiseLike): void; transformAsserterArgs(values: any[]): any; } const chaiAsPromised: ChaiAsPromised; export = chaiAsPromised; } declare namespace Chai { // For BDD API interface Assertion extends LanguageChains, NumericComparison, TypeComparison { eventually: PromisedAssertion; become(expected: any): PromisedAssertion; fulfilled: PromisedAssertion; rejected: 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: any): PromisedAssertion; fulfilled: PromisedAssertion; rejected: 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; include: PromisedInclude; contain: PromisedInclude; ok: PromisedAssertion; true: PromisedAssertion; false: PromisedAssertion; null: PromisedAssertion; undefined: PromisedAssertion; NaN: PromisedAssertion; exist: PromisedAssertion; empty: PromisedAssertion; arguments: PromisedAssertion; Arguments: PromisedAssertion; equal: PromisedEqual; equals: PromisedEqual; eq: PromisedEqual; eql: PromisedEqual; eqls: PromisedEqual; property: PromisedProperty; ownProperty: PromisedOwnProperty; haveOwnProperty: PromisedOwnProperty; ownPropertyDescriptor: PromisedOwnPropertyDescriptor; haveOwnPropertyDescriptor: PromisedOwnPropertyDescriptor; length: PromisedLength; lengthOf: PromisedLength; match: PromisedMatch; matches: PromisedMatch; string(string: string, message?: string): PromisedAssertion; keys: PromisedKeys; key(string: string): PromisedAssertion; throw: PromisedThrow; throws: PromisedThrow; Throw: PromisedThrow; respondTo: PromisedRespondTo; respondsTo: PromisedRespondTo; itself: 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 { } interface PromisedLanguageChains { eventually: Eventually; // From chai to: PromisedAssertion; be: PromisedAssertion; been: PromisedAssertion; is: PromisedAssertion; that: PromisedAssertion; which: PromisedAssertion; and: PromisedAssertion; has: PromisedAssertion; have: PromisedAssertion; with: PromisedAssertion; at: PromisedAssertion; of: PromisedAssertion; same: PromisedAssertion; but: PromisedAssertion; does: PromisedAssertion; } interface PromisedNumericComparison { above: PromisedNumberComparer; gt: PromisedNumberComparer; greaterThan: PromisedNumberComparer; least: PromisedNumberComparer; gte: PromisedNumberComparer; below: PromisedNumberComparer; lt: PromisedNumberComparer; lessThan: PromisedNumberComparer; most: PromisedNumberComparer; lte: PromisedNumberComparer; within(start: number, finish: number, message?: string): PromisedAssertion; } interface PromisedNumberComparer { (value: number, message?: string): PromisedAssertion; } interface PromisedTypeComparison { (type: string, message?: string): PromisedAssertion; instanceof: PromisedInstanceOf; instanceOf: PromisedInstanceOf; } interface PromisedInstanceOf { (constructor: Object, message?: string): PromisedAssertion; } 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 { keys: PromisedKeys; } interface PromisedEqual { (value: any, message?: string): PromisedAssertion; } interface PromisedProperty { (name: string | symbol, value?: any, message?: string): PromisedAssertion; } interface PromisedOwnProperty { (name: string | symbol, message?: string): PromisedAssertion; } interface PromisedOwnPropertyDescriptor { (name: string | symbol, descriptor: PropertyDescriptor, message?: string): PromisedAssertion; (name: string | symbol, message?: string): PromisedAssertion; } interface PromisedLength extends PromisedLanguageChains, PromisedNumericComparison { (length: number, message?: string): PromisedAssertion; } interface PromisedInclude { (value: Object, message?: string): PromisedAssertion; (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 { (): PromisedAssertion; (expected: string | RegExp, message?: string): PromisedAssertion; (constructor: Error | Function, expected?: string | 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; isFulfilled(promise: PromiseLike, message?: string): PromiseLike; becomes(promise: PromiseLike, expected: any, message?: string): PromiseLike; doesNotBecome(promise: PromiseLike, expected: any, message?: string): PromiseLike; isRejected(promise: PromiseLike, message?: string): PromiseLike; isRejected(promise: PromiseLike, expected: any, message?: string): PromiseLike; isRejected(promise: PromiseLike, match: RegExp, message?: string): PromiseLike; notify(fn: Function): PromiseLike; } 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; notEqual(act: any, exp: any, msg?: string): PromiseLike; strictEqual(act: any, exp: any, msg?: string): PromiseLike; notStrictEqual(act: any, exp: any, msg?: string): PromiseLike; 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; isFunction(val: any, msg?: string): PromiseLike; isNotFunction(val: any, msg?: string): PromiseLike; isObject(val: any, msg?: string): PromiseLike; isNotObject(val: any, msg?: string): PromiseLike; isArray(val: any, msg?: string): PromiseLike; isNotArray(val: any, msg?: string): PromiseLike; isString(val: any, msg?: string): PromiseLike; isNotString(val: any, msg?: string): PromiseLike; isNumber(val: any, msg?: string): PromiseLike; isNotNumber(val: any, msg?: string): PromiseLike; isFinite(val: number, msg?: string): PromiseLike; isBoolean(val: any, msg?: string): PromiseLike; isNotBoolean(val: any, msg?: string): PromiseLike; typeOf(val: any, type: string, msg?: string): PromiseLike; notTypeOf(val: any, type: string, msg?: string): PromiseLike; instanceOf(val: any, type: Function, msg?: string): PromiseLike; notInstanceOf(val: any, type: Function, msg?: string): PromiseLike; include(exp: string, inc: any, msg?: string): PromiseLike; include(exp: any[], inc: any, msg?: string): PromiseLike; notInclude(exp: string, inc: any, msg?: string): PromiseLike; notInclude(exp: any[], inc: any, msg?: string): PromiseLike; deepInclude(exp: string, inc: any, msg?: string): PromiseLike; deepInclude(exp: any[], inc: any, msg?: string): PromiseLike; notDeepInclude(exp: string, inc: any, msg?: string): PromiseLike; notDeepInclude(exp: any[], inc: any, msg?: string): PromiseLike; nestedInclude(exp: Object, inc: Object, msg?: string): PromiseLike; notNestedInclude(exp: Object, inc: Object, msg?: string): PromiseLike; deepNestedInclude(exp: Object, inc: Object, msg?: string): PromiseLike; notDeepNestedInclude(exp: Object, inc: Object, msg?: string): PromiseLike; ownInclude(exp: Object, inc: Object, msg?: string): PromiseLike; notOwnInclude(exp: Object, inc: Object, msg?: string): PromiseLike; deepOwnInclude(exp: Object, inc: Object, msg?: string): PromiseLike; notDeepOwnInclude(exp: Object, inc: Object, msg?: string): PromiseLike; match(exp: any, re: RegExp, msg?: string): PromiseLike; notMatch(exp: any, re: RegExp, msg?: string): PromiseLike; property(obj: Object, prop: string, msg?: string): PromiseLike; notProperty(obj: Object, prop: string, msg?: string): PromiseLike; deepProperty(obj: Object, prop: string, msg?: string): PromiseLike; notDeepProperty(obj: Object, prop: string, msg?: string): PromiseLike; propertyVal(obj: Object, prop: string, val: any, msg?: string): PromiseLike; propertyNotVal(obj: Object, prop: string, val: any, msg?: string): PromiseLike; deepPropertyVal(obj: Object, prop: string, val: any, msg?: string): PromiseLike; deepPropertyNotVal(obj: Object, prop: string, val: any, msg?: string): PromiseLike; nestedProperty(obj: object, prop: string, msg?: string): PromiseLike; notNestedProperty(obj: object, prop: string, msg?: string): PromiseLike; nestedPropertyVal(obj: object, prop: string, val: any, msg?: string): PromiseLike; notNestedPropertyVal(obj: object, prop: string, val: any, msg?: string): PromiseLike; deepNestedPropertyVal(obj: object, prop: string, val: any, msg?: string): PromiseLike; notDeepNestedPropertyVal(obj: object, prop: string, val: any, msg?: string): PromiseLike; lengthOf(exp: any, len: number, msg?: string): PromiseLike; hasAnyKeys(obj: any, keys: any[], msg?: string): PromiseLike; hasAnyKeys(obj: any, keys: object, msg?: string): PromiseLike; hasAllKeys(obj: any, keys: any[], msg?: string): PromiseLike; hasAllKeys(obj: any, keys: object, msg?: string): PromiseLike; containsAllKeys(obj: any, keys: any[], msg?: string): PromiseLike; containsAllKeys(obj: any, keys: object, msg?: string): PromiseLike; doesNotHaveAnyKeys(obj: any, keys: any[], msg?: string): PromiseLike; doesNotHaveAnyKeys(obj: any, keys: object, msg?: string): PromiseLike; doesNotHaveAllKeys(obj: any, keys: any[], msg?: string): PromiseLike; doesNotHaveAllKeys(obj: any, keys: object, msg?: string): PromiseLike; hasAnyDeepKeys(obj: any, keys: any[], msg?: string): PromiseLike; hasAnyDeepKeys(obj: any, keys: object, msg?: string): PromiseLike; hasAllDeepKeys(obj: any, keys: any[], msg?: string): PromiseLike; hasAllDeepKeys(obj: any, keys: object, msg?: string): PromiseLike; containsAllDeepKeys(obj: any, keys: any[], msg?: string): PromiseLike; containsAllDeepKeys(obj: any, keys: object, msg?: string): PromiseLike; doesNotHaveAnyDeepKeys(obj: any, keys: any[], msg?: string): PromiseLike; doesNotHaveAnyDeepKeys(obj: any, keys: object, msg?: string): PromiseLike; doesNotHaveAllDeepKeys(obj: any, keys: any[], msg?: string): PromiseLike; doesNotHaveAllDeepKeys(obj: any, keys: object, msg?: string): PromiseLike; //alias frenzy throw(fn: Function, msg?: string): PromiseLike; throw(fn: Function, regExp: RegExp): PromiseLike; throw(fn: Function, errType: Function, msg?: string): PromiseLike; throw(fn: Function, errType: Function, regExp: RegExp): PromiseLike; throws(fn: Function, msg?: string): PromiseLike; throws(fn: Function, regExp: RegExp): PromiseLike; throws(fn: Function, errType: Function, msg?: string): PromiseLike; throws(fn: Function, errType: Function, regExp: RegExp): PromiseLike; Throw(fn: Function, msg?: string): PromiseLike; Throw(fn: Function, regExp: RegExp): PromiseLike; Throw(fn: Function, errType: Function, msg?: string): PromiseLike; Throw(fn: Function, errType: Function, regExp: RegExp): PromiseLike; doesNotThrow(fn: Function, msg?: string): PromiseLike; doesNotThrow(fn: Function, regExp: RegExp): PromiseLike; doesNotThrow(fn: Function, errType: Function, msg?: string): PromiseLike; doesNotThrow(fn: Function, errType: Function, regExp: RegExp): PromiseLike; 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; changesBy(modifier: Function, obj: object, property: string, change: number, msg?: string): PromiseLike; doesNotChange(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike; changesButNotBy(modifier: Function, obj: object, property: string, change: number, msg?: string): PromiseLike; increases(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike; increasesBy(modifier: Function, obj: Object, property: string, change: number, msg?: string): PromiseLike; doesNotIncrease(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike; increasesButNotBy(modifier: Function, obj: Object, property: string, change: number, msg?: string): PromiseLike; decreases(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike; decreasesBy(modifier: Function, obj: Object, property: string, change: number, msg?: string): PromiseLike; doesNotDecrease(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike; decreasesButNotBy(modifier: Function, obj: Object, property: string, change: number, 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; } }