// Type definitions for chai 4.3 | |
// Project: http://chaijs.com/ | |
// Definitions by: Bart van der Schoor <https://github.com/Bartvds> | |
// Andrew Brown <https://github.com/AGBrown> | |
// Olivier Chevet <https://github.com/olivr70> | |
// Matt Wistrand <https://github.com/mwistrand> | |
// Shaun Luttin <https://github.com/shaunluttin> | |
// Satana Charuwichitratana <https://github.com/micksatana> | |
// Erik Schierboom <https://github.com/ErikSchierboom> | |
// Bogdan Paranytsia <https://github.com/bparan> | |
// CXuesong <https://github.com/CXuesong> | |
// Joey Kilpatrick <https://github.com/joeykilpatrick> | |
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped | |
// TypeScript Version: 3.0 | |
declare namespace Chai { | |
type Message = string | (() => string); | |
type ObjectProperty = string | symbol | number; | |
interface PathInfo { | |
parent: object; | |
name: string; | |
value?: any; | |
exists: boolean; | |
} | |
interface ErrorConstructor { | |
new(...args: any[]): Error; | |
} | |
interface ChaiUtils { | |
addChainableMethod( | |
// object to define the method on, e.g. chai.Assertion.prototype | |
ctx: object, | |
// method name | |
name: string, | |
// method itself; any arguments | |
method: (...args: any[]) => void, | |
// called when property is accessed | |
chainingBehavior?: () => void, | |
): void; | |
overwriteChainableMethod( | |
ctx: object, | |
name: string, | |
method: (...args: any[]) => void, | |
chainingBehavior?: () => void, | |
): void; | |
addLengthGuard( | |
fn: Function, | |
assertionName: string, | |
isChainable: boolean, | |
): void; | |
addMethod(ctx: object, name: string, method: Function): void; | |
addProperty(ctx: object, name: string, getter: () => any): void; | |
overwriteMethod(ctx: object, name: string, method: Function): void; | |
overwriteProperty(ctx: object, name: string, getter: () => any): void; | |
compareByInspect(a: object, b: object): -1 | 1; | |
expectTypes(obj: object, types: string[]): void; | |
flag(obj: object, key: string, value?: any): any; | |
getActual(obj: object, args: AssertionArgs): any; | |
getProperties(obj: object): string[]; | |
getEnumerableProperties(obj: object): string[]; | |
getOwnEnumerablePropertySymbols(obj: object): symbol[]; | |
getOwnEnumerableProperties(obj: object): Array<string | symbol>; | |
getMessage(errorLike: Error | string): string; | |
getMessage(obj: any, args: AssertionArgs): string; | |
inspect(obj: any, showHidden?: boolean, depth?: number, colors?: boolean): string; | |
isProxyEnabled(): boolean; | |
objDisplay(obj: object): void; | |
proxify(obj: object, nonChainableMethodName: string): object; | |
test(obj: object, args: AssertionArgs): boolean; | |
transferFlags(assertion: Assertion, obj: object, includeAll?: boolean): void; | |
compatibleInstance(thrown: Error, errorLike: Error | ErrorConstructor): boolean; | |
compatibleConstructor(thrown: Error, errorLike: Error | ErrorConstructor): boolean; | |
compatibleMessage(thrown: Error, errMatcher: string | RegExp): boolean; | |
getConstructorName(constructorFn: Function): string; | |
getFuncName(constructorFn: Function): string | null; | |
// Reexports from pathval: | |
hasProperty(obj: object | undefined | null, name: ObjectProperty): boolean; | |
getPathInfo(obj: object, path: string): PathInfo; | |
getPathValue(obj: object, path: string): object | undefined; | |
} | |
type ChaiPlugin = (chai: ChaiStatic, utils: ChaiUtils) => void; | |
interface ChaiStatic { | |
expect: ExpectStatic; | |
should(): Should; | |
/** | |
* Provides a way to extend the internals of Chai | |
*/ | |
use(fn: ChaiPlugin): ChaiStatic; | |
util: ChaiUtils; | |
assert: AssertStatic; | |
config: Config; | |
Assertion: AssertionStatic; | |
AssertionError: typeof AssertionError; | |
version: string; | |
} | |
export interface ExpectStatic { | |
(val: any, message?: string): Assertion; | |
fail(message?: string): never; | |
fail(actual: any, expected: any, message?: string, operator?: Operator): never; | |
} | |
export interface AssertStatic extends Assert { | |
} | |
// chai.Assertion.prototype.assert arguments | |
type AssertionArgs = [ | |
// 'expression to be tested' | |
// This parameter is unused and the docs list its type as | |
// 'Philosophical', which is mentioned nowhere else in the source. Do | |
// with that what you will! | |
any, | |
Message, // message if value fails | |
Message, // message if negated value fails | |
any, // expected value | |
any?, // actual value | |
boolean?, // showDiff | |
]; | |
export interface AssertionPrototype { | |
assert(...args: AssertionArgs): void; | |
_obj: any; | |
} | |
export interface AssertionStatic extends AssertionPrototype { | |
prototype: AssertionPrototype; | |
new(target: any, message?: string, ssfi?: Function, lockSsfi?: boolean): Assertion; | |
// Deprecated properties: | |
includeStack: boolean; | |
showDiff: boolean; | |
// Partials of functions on ChaiUtils: | |
addProperty(name: string, getter: (this: AssertionStatic) => any): void; | |
addMethod(name: string, method: (this: AssertionStatic, ...args: any[]) => any): void; | |
addChainableMethod( | |
name: string, | |
method: (this: AssertionStatic, ...args: any[]) => void, | |
chainingBehavior?: () => void, | |
): void; | |
overwriteProperty(name: string, getter: (this: AssertionStatic) => any): void; | |
overwriteMethod(name: string, method: (this: AssertionStatic, ...args: any[]) => any): void; | |
overwriteChainableMethod( | |
name: string, | |
method: (this: AssertionStatic, ...args: any[]) => void, | |
chainingBehavior?: () => void, | |
): void; | |
} | |
export type Operator = string; // "==" | "===" | ">" | ">=" | "<" | "<=" | "!=" | "!=="; | |
export type OperatorComparable = boolean | null | number | string | undefined | Date; | |
interface ShouldAssertion { | |
equal(value1: any, value2: any, message?: string): void; | |
Throw: ShouldThrow; | |
throw: ShouldThrow; | |
exist(value: any, message?: string): void; | |
} | |
interface Should extends ShouldAssertion { | |
not: ShouldAssertion; | |
fail(message?: string): never; | |
fail(actual: any, expected: any, message?: string, operator?: Operator): never; | |
} | |
interface ShouldThrow { | |
(actual: Function, expected?: string | RegExp, message?: string): void; | |
(actual: Function, constructor: Error | Function, expected?: string | RegExp, message?: string): void; | |
} | |
interface Assertion extends LanguageChains, NumericComparison, TypeComparison { | |
not: Assertion; | |
deep: Deep; | |
ordered: Ordered; | |
nested: Nested; | |
own: Own; | |
any: KeyFilter; | |
all: KeyFilter; | |
a: Assertion; | |
an: Assertion; | |
include: Include; | |
includes: Include; | |
contain: Include; | |
contains: Include; | |
ok: Assertion; | |
true: Assertion; | |
false: Assertion; | |
null: Assertion; | |
undefined: Assertion; | |
NaN: Assertion; | |
exist: Assertion; | |
empty: Assertion; | |
arguments: Assertion; | |
Arguments: Assertion; | |
finite: Assertion; | |
equal: Equal; | |
equals: Equal; | |
eq: Equal; | |
eql: Equal; | |
eqls: Equal; | |
property: Property; | |
ownProperty: Property; | |
haveOwnProperty: Property; | |
ownPropertyDescriptor: OwnPropertyDescriptor; | |
haveOwnPropertyDescriptor: OwnPropertyDescriptor; | |
length: Length; | |
lengthOf: Length; | |
match: Match; | |
matches: Match; | |
string(string: string, message?: string): Assertion; | |
keys: Keys; | |
key(string: string): Assertion; | |
throw: Throw; | |
throws: Throw; | |
Throw: Throw; | |
respondTo: RespondTo; | |
respondsTo: RespondTo; | |
itself: Assertion; | |
satisfy: Satisfy; | |
satisfies: Satisfy; | |
closeTo: CloseTo; | |
approximately: CloseTo; | |
members: Members; | |
increase: PropertyChange; | |
increases: PropertyChange; | |
decrease: PropertyChange; | |
decreases: PropertyChange; | |
change: PropertyChange; | |
changes: PropertyChange; | |
extensible: Assertion; | |
sealed: Assertion; | |
frozen: Assertion; | |
oneOf: OneOf; | |
} | |
interface LanguageChains { | |
to: Assertion; | |
be: Assertion; | |
been: Assertion; | |
is: Assertion; | |
that: Assertion; | |
which: Assertion; | |
and: Assertion; | |
has: Assertion; | |
have: Assertion; | |
with: Assertion; | |
at: Assertion; | |
of: Assertion; | |
same: Assertion; | |
but: Assertion; | |
does: Assertion; | |
} | |
interface NumericComparison { | |
above: NumberComparer; | |
gt: NumberComparer; | |
greaterThan: NumberComparer; | |
least: NumberComparer; | |
gte: NumberComparer; | |
greaterThanOrEqual: NumberComparer; | |
below: NumberComparer; | |
lt: NumberComparer; | |
lessThan: NumberComparer; | |
most: NumberComparer; | |
lte: NumberComparer; | |
lessThanOrEqual: NumberComparer; | |
within(start: number, finish: number, message?: string): Assertion; | |
within(start: Date, finish: Date, message?: string): Assertion; | |
} | |
interface NumberComparer { | |
(value: number | Date, message?: string): Assertion; | |
} | |
interface TypeComparison { | |
(type: string, message?: string): Assertion; | |
instanceof: InstanceOf; | |
instanceOf: InstanceOf; | |
} | |
interface InstanceOf { | |
(constructor: any, message?: string): Assertion; | |
} | |
interface CloseTo { | |
(expected: number, delta: number, message?: string): Assertion; | |
} | |
interface Nested { | |
include: Include; | |
includes: Include; | |
contain: Include; | |
contains: Include; | |
property: Property; | |
members: Members; | |
} | |
interface Own { | |
include: Include; | |
includes: Include; | |
contain: Include; | |
contains: Include; | |
property: Property; | |
} | |
interface Deep extends KeyFilter { | |
be: Assertion; | |
equal: Equal; | |
equals: Equal; | |
eq: Equal; | |
include: Include; | |
includes: Include; | |
contain: Include; | |
contains: Include; | |
property: Property; | |
ordered: Ordered; | |
nested: Nested; | |
oneOf: OneOf; | |
own: Own; | |
} | |
interface Ordered { | |
members: Members; | |
} | |
interface KeyFilter { | |
keys: Keys; | |
members: Members; | |
} | |
interface Equal { | |
(value: any, message?: string): Assertion; | |
} | |
interface Property { | |
(name: string | symbol, value: any, message?: string): Assertion; | |
(name: string | symbol, message?: string): Assertion; | |
} | |
interface OwnPropertyDescriptor { | |
(name: string | symbol, descriptor: PropertyDescriptor, message?: string): Assertion; | |
(name: string | symbol, message?: string): Assertion; | |
} | |
interface Length extends LanguageChains, NumericComparison { | |
(length: number, message?: string): Assertion; | |
} | |
interface Include { | |
(value: any, message?: string): Assertion; | |
keys: Keys; | |
deep: Deep; | |
ordered: Ordered; | |
members: Members; | |
any: KeyFilter; | |
all: KeyFilter; | |
oneOf: OneOf; | |
} | |
interface OneOf { | |
(list: ReadonlyArray<unknown>, message?: string): Assertion; | |
} | |
interface Match { | |
(regexp: RegExp, message?: string): Assertion; | |
} | |
interface Keys { | |
(...keys: string[]): Assertion; | |
(keys: ReadonlyArray<any> | Object): Assertion; | |
} | |
interface Throw { | |
(expected?: string | RegExp, message?: string): Assertion; | |
(constructor: Error | Function, expected?: string | RegExp, message?: string): Assertion; | |
} | |
interface RespondTo { | |
(method: string, message?: string): Assertion; | |
} | |
interface Satisfy { | |
(matcher: Function, message?: string): Assertion; | |
} | |
interface Members { | |
(set: ReadonlyArray<any>, message?: string): Assertion; | |
} | |
interface PropertyChange { | |
(object: Object, property?: string, message?: string): DeltaAssertion; | |
} | |
interface DeltaAssertion extends Assertion { | |
by(delta: number, msg?: string): Assertion; | |
} | |
export interface Assert { | |
/** | |
* @param expression Expression to test for truthiness. | |
* @param message Message to display on error. | |
*/ | |
(expression: any, message?: string): asserts expression; | |
/** | |
* Throws a failure. | |
* | |
* @param message Message to display on error. | |
* @remarks Node.js assert module-compatible. | |
*/ | |
fail(message?: string): never; | |
/** | |
* Throws a failure. | |
* | |
* T Type of the objects. | |
* @param actual Actual value. | |
* @param expected Potential expected value. | |
* @param message Message to display on error. | |
* @param operator Comparison operator, if not strict equality. | |
* @remarks Node.js assert module-compatible. | |
*/ | |
fail<T>(actual: T, expected: T, message?: string, operator?: Operator): never; | |
/** | |
* Asserts that object is truthy. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param message Message to display on error. | |
*/ | |
isOk<T>(value: T, message?: string): void; | |
/** | |
* Asserts that object is truthy. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param message Message to display on error. | |
*/ | |
ok<T>(value: T, message?: string): void; | |
/** | |
* Asserts that object is falsy. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param message Message to display on error. | |
*/ | |
isNotOk<T>(value: T, message?: string): void; | |
/** | |
* Asserts that object is falsy. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param message Message to display on error. | |
*/ | |
notOk<T>(value: T, message?: string): void; | |
/** | |
* Asserts non-strict equality (==) of actual and expected. | |
* | |
* T Type of the objects. | |
* @param actual Actual value. | |
* @param expected Potential expected value. | |
* @param message Message to display on error. | |
*/ | |
equal<T>(actual: T, expected: T, message?: string): void; | |
/** | |
* Asserts non-strict inequality (!=) of actual and expected. | |
* | |
* T Type of the objects. | |
* @param actual Actual value. | |
* @param expected Potential expected value. | |
* @param message Message to display on error. | |
*/ | |
notEqual<T>(actual: T, expected: T, message?: string): void; | |
/** | |
* Asserts strict equality (===) of actual and expected. | |
* | |
* T Type of the objects. | |
* @param actual Actual value. | |
* @param expected Potential expected value. | |
* @param message Message to display on error. | |
*/ | |
strictEqual<T>(actual: T, expected: T, message?: string): void; | |
/** | |
* Asserts strict inequality (!==) of actual and expected. | |
* | |
* T Type of the objects. | |
* @param actual Actual value. | |
* @param expected Potential expected value. | |
* @param message Message to display on error. | |
*/ | |
notStrictEqual<T>(actual: T, expected: T, message?: string): void; | |
/** | |
* Asserts that actual is deeply equal to expected. | |
* | |
* T Type of the objects. | |
* @param actual Actual value. | |
* @param expected Potential expected value. | |
* @param message Message to display on error. | |
*/ | |
deepEqual<T>(actual: T, expected: T, message?: string): void; | |
/** | |
* Asserts that actual is not deeply equal to expected. | |
* | |
* T Type of the objects. | |
* @param actual Actual value. | |
* @param expected Potential expected value. | |
* @param message Message to display on error. | |
*/ | |
notDeepEqual<T>(actual: T, expected: T, message?: string): void; | |
/** | |
* Alias to deepEqual | |
* | |
* T Type of the objects. | |
* @param actual Actual value. | |
* @param expected Potential expected value. | |
* @param message Message to display on error. | |
*/ | |
deepStrictEqual<T>(actual: T, expected: T, message?: string): void; | |
/** | |
* Asserts valueToCheck is strictly greater than (>) valueToBeAbove. | |
* | |
* @param valueToCheck Actual value. | |
* @param valueToBeAbove Minimum Potential expected value. | |
* @param message Message to display on error. | |
*/ | |
isAbove(valueToCheck: number, valueToBeAbove: number, message?: string): void; | |
/** | |
* Asserts valueToCheck is greater than or equal to (>=) valueToBeAtLeast. | |
* | |
* @param valueToCheck Actual value. | |
* @param valueToBeAtLeast Minimum Potential expected value. | |
* @param message Message to display on error. | |
*/ | |
isAtLeast(valueToCheck: number, valueToBeAtLeast: number, message?: string): void; | |
/** | |
* Asserts valueToCheck is strictly less than (<) valueToBeBelow. | |
* | |
* @param valueToCheck Actual value. | |
* @param valueToBeBelow Minimum Potential expected value. | |
* @param message Message to display on error. | |
*/ | |
isBelow(valueToCheck: number, valueToBeBelow: number, message?: string): void; | |
/** | |
* Asserts valueToCheck is less than or equal to (<=) valueToBeAtMost. | |
* | |
* @param valueToCheck Actual value. | |
* @param valueToBeAtMost Minimum Potential expected value. | |
* @param message Message to display on error. | |
*/ | |
isAtMost(valueToCheck: number, valueToBeAtMost: number, message?: string): void; | |
/** | |
* Asserts that value is true. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isTrue<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is false. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isFalse<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is not true. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isNotTrue<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is not false. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isNotFalse<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is null. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isNull<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is not null. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isNotNull<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is NaN. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isNaN<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is not NaN. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isNotNaN<T>(value: T, message?: string): void; | |
/** | |
* Asserts that the target is neither null nor undefined. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
exists<T>(value: T, message?: string): void; | |
/** | |
* Asserts that the target is either null or undefined. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
notExists<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is undefined. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isUndefined<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is not undefined. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isDefined<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is a function. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isFunction<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is not a function. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isNotFunction<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is an object of type 'Object' | |
* (as revealed by Object.prototype.toString). | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
* @remarks The assertion does not match subclassed objects. | |
*/ | |
isObject<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is not an object of type 'Object' | |
* (as revealed by Object.prototype.toString). | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isNotObject<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is an array. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isArray<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is not an array. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isNotArray<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is a string. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isString<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is not a string. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isNotString<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is a number. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isNumber<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is not a number. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isNotNumber<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is a finite number. | |
* Unlike `.isNumber`, this will fail for `NaN` and `Infinity`. | |
* | |
* T Type of value | |
* @param value Actual value | |
* @param message Message to display on error. | |
*/ | |
isFinite<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is a boolean. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isBoolean<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value is not a boolean. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param message Message to display on error. | |
*/ | |
isNotBoolean<T>(value: T, message?: string): void; | |
/** | |
* Asserts that value's type is name, as determined by Object.prototype.toString. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param name Potential expected type name of value. | |
* @param message Message to display on error. | |
*/ | |
typeOf<T>(value: T, name: string, message?: string): void; | |
/** | |
* Asserts that value's type is not name, as determined by Object.prototype.toString. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param name Potential expected type name of value. | |
* @param message Message to display on error. | |
*/ | |
notTypeOf<T>(value: T, name: string, message?: string): void; | |
/** | |
* Asserts that value is an instance of constructor. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param constructor Potential expected contructor of value. | |
* @param message Message to display on error. | |
*/ | |
instanceOf<T>(value: T, constructor: Function, message?: string): void; | |
/** | |
* Asserts that value is not an instance of constructor. | |
* | |
* T Type of value. | |
* @param value Actual value. | |
* @param constructor Potential expected contructor of value. | |
* @param message Message to display on error. | |
*/ | |
notInstanceOf<T>(value: T, type: Function, message?: string): void; | |
/** | |
* Asserts that haystack includes needle. | |
* | |
* @param haystack Container string. | |
* @param needle Potential substring of haystack. | |
* @param message Message to display on error. | |
*/ | |
include(haystack: string, needle: string, message?: string): void; | |
/** | |
* Asserts that haystack includes needle. | |
* | |
* T Type of values in haystack. | |
* @param haystack Container array, set or map. | |
* @param needle Potential value contained in haystack. | |
* @param message Message to display on error. | |
*/ | |
include<T>( | |
haystack: ReadonlyArray<T> | ReadonlySet<T> | ReadonlyMap<any, T>, | |
needle: T, | |
message?: string, | |
): void; | |
/** | |
* Asserts that haystack includes needle. | |
* | |
* T Type of values in haystack. | |
* @param haystack WeakSet container. | |
* @param needle Potential value contained in haystack. | |
* @param message Message to display on error. | |
*/ | |
include<T extends object>(haystack: WeakSet<T>, needle: T, message?: string): void; | |
/** | |
* Asserts that haystack includes needle. | |
* | |
* T Type of haystack. | |
* @param haystack Object. | |
* @param needle Potential subset of the haystack's properties. | |
* @param message Message to display on error. | |
*/ | |
include<T>(haystack: T, needle: Partial<T>, message?: string): void; | |
/** | |
* Asserts that haystack does not includes needle. | |
* | |
* @param haystack Container string. | |
* @param needle Potential substring of haystack. | |
* @param message Message to display on error. | |
*/ | |
notInclude(haystack: string, needle: string, message?: string): void; | |
/** | |
* Asserts that haystack does not includes needle. | |
* | |
* T Type of values in haystack. | |
* @param haystack Container array, set or map. | |
* @param needle Potential value contained in haystack. | |
* @param message Message to display on error. | |
*/ | |
notInclude<T>( | |
haystack: ReadonlyArray<T> | ReadonlySet<T> | ReadonlyMap<any, T>, | |
needle: T, | |
message?: string, | |
): void; | |
/** | |
* Asserts that haystack does not includes needle. | |
* | |
* T Type of values in haystack. | |
* @param haystack WeakSet container. | |
* @param needle Potential value contained in haystack. | |
* @param message Message to display on error. | |
*/ | |
notInclude<T extends object>(haystack: WeakSet<T>, needle: T, message?: string): void; | |
/** | |
* Asserts that haystack does not includes needle. | |
* | |
* T Type of haystack. | |
* @param haystack Object. | |
* @param needle Potential subset of the haystack's properties. | |
* @param message Message to display on error. | |
*/ | |
notInclude<T>(haystack: T, needle: Partial<T>, message?: string): void; | |
/** | |
* Asserts that haystack includes needle. Deep equality is used. | |
* | |
* @param haystack Container string. | |
* @param needle Potential substring of haystack. | |
* @param message Message to display on error. | |
* | |
* @deprecated Does not have any effect on string. Use {@link Assert#include} instead. | |
*/ | |
deepInclude(haystack: string, needle: string, message?: string): void; | |
/** | |
* Asserts that haystack includes needle. Deep equality is used. | |
* | |
* T Type of values in haystack. | |
* @param haystack Container array, set or map. | |
* @param needle Potential value contained in haystack. | |
* @param message Message to display on error. | |
*/ | |
deepInclude<T>( | |
haystack: ReadonlyArray<T> | ReadonlySet<T> | ReadonlyMap<any, T>, | |
needle: T, | |
message?: string, | |
): void; | |
/** | |
* Asserts that haystack does not includes needle. | |
* | |
* T Type of haystack. | |
* @param haystack Object. | |
* @param needle Potential subset of the haystack's properties. | |
* @param message Message to display on error. | |
*/ | |
deepInclude<T>(haystack: T, needle: T extends WeakSet<any> ? never : Partial<T>, message?: string): void; | |
/** | |
* Asserts that haystack does not includes needle. Deep equality is used. | |
* | |
* @param haystack Container string. | |
* @param needle Potential substring of haystack. | |
* @param message Message to display on error. | |
* | |
* @deprecated Does not have any effect on string. Use {@link Assert#notInclude} instead. | |
*/ | |
notDeepInclude(haystack: string, needle: string, message?: string): void; | |
/** | |
* Asserts that haystack does not includes needle. Deep equality is used. | |
* | |
* T Type of values in haystack. | |
* @param haystack Container array, set or map. | |
* @param needle Potential value contained in haystack. | |
* @param message Message to display on error. | |
*/ | |
notDeepInclude<T>( | |
haystack: ReadonlyArray<T> | ReadonlySet<T> | ReadonlyMap<any, T>, | |
needle: T, | |
message?: string, | |
): void; | |
/** | |
* Asserts that haystack does not includes needle. Deep equality is used. | |
* | |
* T Type of haystack. | |
* @param haystack Object. | |
* @param needle Potential subset of the haystack's properties. | |
* @param message Message to display on error. | |
*/ | |
notDeepInclude<T>(haystack: T, needle: T extends WeakSet<any> ? never : Partial<T>, message?: string): void; | |
/** | |
* Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the inclusion of a subset of properties in an object. | |
* | |
* Enables the use of dot- and bracket-notation for referencing nested properties. | |
* ‘[]’ and ‘.’ in property names can be escaped using double backslashes.Asserts that ‘haystack’ includes ‘needle’. | |
* Can be used to assert the inclusion of a subset of properties in an object. | |
* Enables the use of dot- and bracket-notation for referencing nested properties. | |
* ‘[]’ and ‘.’ in property names can be escaped using double backslashes. | |
* | |
* @param haystack | |
* @param needle | |
* @param message Message to display on error. | |
*/ | |
nestedInclude(haystack: any, needle: any, message?: string): void; | |
/** | |
* Asserts that ‘haystack’ does not include ‘needle’. Can be used to assert the absence of a subset of properties in an object. | |
* | |
* Enables the use of dot- and bracket-notation for referencing nested properties. | |
* ‘[]’ and ‘.’ in property names can be escaped using double backslashes.Asserts that ‘haystack’ includes ‘needle’. | |
* Can be used to assert the inclusion of a subset of properties in an object. | |
* Enables the use of dot- and bracket-notation for referencing nested properties. | |
* ‘[]’ and ‘.’ in property names can be escaped using double backslashes. | |
* | |
* @param haystack | |
* @param needle | |
* @param message Message to display on error. | |
*/ | |
notNestedInclude(haystack: any, needle: any, message?: string): void; | |
/** | |
* Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the inclusion of a subset of properties in an object while checking for deep equality | |
* | |
* Enables the use of dot- and bracket-notation for referencing nested properties. | |
* ‘[]’ and ‘.’ in property names can be escaped using double backslashes.Asserts that ‘haystack’ includes ‘needle’. | |
* Can be used to assert the inclusion of a subset of properties in an object. | |
* Enables the use of dot- and bracket-notation for referencing nested properties. | |
* ‘[]’ and ‘.’ in property names can be escaped using double backslashes. | |
* | |
* @param haystack | |
* @param needle | |
* @param message Message to display on error. | |
*/ | |
deepNestedInclude(haystack: any, needle: any, message?: string): void; | |
/** | |
* Asserts that ‘haystack’ does not include ‘needle’. Can be used to assert the absence of a subset of properties in an object while checking for deep equality. | |
* | |
* Enables the use of dot- and bracket-notation for referencing nested properties. | |
* ‘[]’ and ‘.’ in property names can be escaped using double backslashes.Asserts that ‘haystack’ includes ‘needle’. | |
* Can be used to assert the inclusion of a subset of properties in an object. | |
* Enables the use of dot- and bracket-notation for referencing nested properties. | |
* ‘[]’ and ‘.’ in property names can be escaped using double backslashes. | |
* | |
* @param haystack | |
* @param needle | |
* @param message Message to display on error. | |
*/ | |
notDeepNestedInclude(haystack: any, needle: any, message?: string): void; | |
/** | |
* Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the inclusion of a subset of properties in an object while ignoring inherited properties. | |
* | |
* @param haystack | |
* @param needle | |
* @param message Message to display on error. | |
*/ | |
ownInclude(haystack: any, needle: any, message?: string): void; | |
/** | |
* Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the absence of a subset of properties in an object while ignoring inherited properties. | |
* | |
* @param haystack | |
* @param needle | |
* @param message Message to display on error. | |
*/ | |
notOwnInclude(haystack: any, needle: any, message?: string): void; | |
/** | |
* Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the inclusion of a subset of properties in an object while ignoring inherited properties and checking for deep | |
* | |
* @param haystack | |
* @param needle | |
* @param message Message to display on error. | |
*/ | |
deepOwnInclude(haystack: any, needle: any, message?: string): void; | |
/** | |
* Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the absence of a subset of properties in an object while ignoring inherited properties and checking for deep equality. | |
* | |
* @param haystack | |
* @param needle | |
* @param message Message to display on error. | |
*/ | |
notDeepOwnInclude(haystack: any, needle: any, message?: string): void; | |
/** | |
* Asserts that value matches the regular expression regexp. | |
* | |
* @param value Actual value. | |
* @param regexp Potential match of value. | |
* @param message Message to display on error. | |
*/ | |
match(value: string, regexp: RegExp, message?: string): void; | |
/** | |
* Asserts that value does not match the regular expression regexp. | |
* | |
* @param value Actual value. | |
* @param regexp Potential match of value. | |
* @param message Message to display on error. | |
*/ | |
notMatch(expected: any, regexp: RegExp, message?: string): void; | |
/** | |
* Asserts that object has a property named by property. | |
* | |
* T Type of object. | |
* @param object Container object. | |
* @param property Potential contained property of object. | |
* @param message Message to display on error. | |
*/ | |
property<T>(object: T, property: string, /* keyof T */ message?: string): void; | |
/** | |
* Asserts that object has a property named by property. | |
* | |
* T Type of object. | |
* @param object Container object. | |
* @param property Potential contained property of object. | |
* @param message Message to display on error. | |
*/ | |
notProperty<T>(object: T, property: string, /* keyof T */ message?: string): void; | |
/** | |
* Asserts that object has a property named by property, which can be a string | |
* using dot- and bracket-notation for deep reference. | |
* | |
* T Type of object. | |
* @param object Container object. | |
* @param property Potential contained property of object. | |
* @param message Message to display on error. | |
*/ | |
deepProperty<T>(object: T, property: string, message?: string): void; | |
/** | |
* Asserts that object does not have a property named by property, which can be a | |
* string using dot- and bracket-notation for deep reference. | |
* | |
* T Type of object. | |
* @param object Container object. | |
* @param property Potential contained property of object. | |
* @param message Message to display on error. | |
*/ | |
notDeepProperty<T>(object: T, property: string, message?: string): void; | |
/** | |
* Asserts that object has a property named by property with value given by value. | |
* | |
* T Type of object. | |
* V Type of value. | |
* @param object Container object. | |
* @param property Potential contained property of object. | |
* @param value Potential expected property value. | |
* @param message Message to display on error. | |
*/ | |
propertyVal<T, V>(object: T, property: string, /* keyof T */ value: V, message?: string): void; | |
/** | |
* Asserts that object has a property named by property with value given by value. | |
* | |
* T Type of object. | |
* V Type of value. | |
* @param object Container object. | |
* @param property Potential contained property of object. | |
* @param value Potential expected property value. | |
* @param message Message to display on error. | |
*/ | |
notPropertyVal<T, V>(object: T, property: string, /* keyof T */ value: V, message?: string): void; | |
/** | |
* Asserts that object has a property named by property, which can be a string | |
* using dot- and bracket-notation for deep reference. | |
* | |
* T Type of object. | |
* V Type of value. | |
* @param object Container object. | |
* @param property Potential contained property of object. | |
* @param value Potential expected property value. | |
* @param message Message to display on error. | |
*/ | |
deepPropertyVal<T, V>(object: T, property: string, value: V, message?: string): void; | |
/** | |
* Asserts that object does not have a property named by property, which can be a | |
* string using dot- and bracket-notation for deep reference. | |
* | |
* T Type of object. | |
* V Type of value. | |
* @param object Container object. | |
* @param property Potential contained property of object. | |
* @param value Potential expected property value. | |
* @param message Message to display on error. | |
*/ | |
notDeepPropertyVal<T, V>(object: T, property: string, value: V, message?: string): void; | |
/** | |
* Asserts that object has a length property with the expected value. | |
* | |
* T Type of object. | |
* @param object Container object. | |
* @param length Potential expected length of object. | |
* @param message Message to display on error. | |
*/ | |
lengthOf<T extends { readonly length?: number | undefined }>(object: T, length: number, message?: string): void; | |
/** | |
* Asserts that fn will throw an error. | |
* | |
* @param fn Function that may throw. | |
* @param errMsgMatcher Expected error message matcher. | |
* @param ignored Ignored parameter. | |
* @param message Message to display on error. | |
*/ | |
throw(fn: () => void, errMsgMatcher?: RegExp | string, ignored?: any, message?: string): void; | |
/** | |
* Asserts that fn will throw an error. | |
* | |
* @param fn Function that may throw. | |
* @param errorLike Expected error constructor or error instance. | |
* @param errMsgMatcher Expected error message matcher. | |
* @param message Message to display on error. | |
*/ | |
throw( | |
fn: () => void, | |
errorLike?: ErrorConstructor | Error | null, | |
errMsgMatcher?: RegExp | string | null, | |
message?: string, | |
): void; | |
/** | |
* Asserts that fn will throw an error. | |
* | |
* @param fn Function that may throw. | |
* @param errMsgMatcher Expected error message matcher. | |
* @param ignored Ignored parameter. | |
* @param message Message to display on error. | |
*/ | |
throws(fn: () => void, errMsgMatcher?: RegExp | string, ignored?: any, message?: string): void; | |
/** | |
* Asserts that fn will throw an error. | |
* | |
* @param fn Function that may throw. | |
* @param errorLike Expected error constructor or error instance. | |
* @param errMsgMatcher Expected error message matcher. | |
* @param message Message to display on error. | |
*/ | |
throws( | |
fn: () => void, | |
errorLike?: ErrorConstructor | Error | null, | |
errMsgMatcher?: RegExp | string | null, | |
message?: string, | |
): void; | |
/** | |
* Asserts that fn will throw an error. | |
* | |
* @param fn Function that may throw. | |
* @param errMsgMatcher Expected error message matcher. | |
* @param ignored Ignored parameter. | |
* @param message Message to display on error. | |
*/ | |
Throw(fn: () => void, errMsgMatcher?: RegExp | string, ignored?: any, message?: string): void; | |
/** | |
* Asserts that fn will throw an error. | |
* | |
* @param fn Function that may throw. | |
* @param errorLike Expected error constructor or error instance. | |
* @param errMsgMatcher Expected error message matcher. | |
* @param message Message to display on error. | |
*/ | |
Throw( | |
fn: () => void, | |
errorLike?: ErrorConstructor | Error | null, | |
errMsgMatcher?: RegExp | string | null, | |
message?: string, | |
): void; | |
/** | |
* Asserts that fn will not throw an error. | |
* | |
* @param fn Function that may throw. | |
* @param errMsgMatcher Expected error message matcher. | |
* @param ignored Ignored parameter. | |
* @param message Message to display on error. | |
*/ | |
doesNotThrow(fn: () => void, errMsgMatcher?: RegExp | string, ignored?: any, message?: string): void; | |
/** | |
* Asserts that fn will not throw an error. | |
* | |
* @param fn Function that may throw. | |
* @param errorLike Expected error constructor or error instance. | |
* @param errMsgMatcher Expected error message matcher. | |
* @param message Message to display on error. | |
*/ | |
doesNotThrow( | |
fn: () => void, | |
errorLike?: ErrorConstructor | Error | null, | |
errMsgMatcher?: RegExp | string | null, | |
message?: string, | |
): void; | |
/** | |
* Compares two values using operator. | |
* | |
* @param val1 Left value during comparison. | |
* @param operator Comparison operator. | |
* @param val2 Right value during comparison. | |
* @param message Message to display on error. | |
*/ | |
operator(val1: OperatorComparable, operator: Operator, val2: OperatorComparable, message?: string): void; | |
/** | |
* Asserts that the target is equal to expected, to within a +/- delta range. | |
* | |
* @param actual Actual value | |
* @param expected Potential expected value. | |
* @param delta Maximum differenced between values. | |
* @param message Message to display on error. | |
*/ | |
closeTo(actual: number, expected: number, delta: number, message?: string): void; | |
/** | |
* Asserts that the target is equal to expected, to within a +/- delta range. | |
* | |
* @param actual Actual value | |
* @param expected Potential expected value. | |
* @param delta Maximum differenced between values. | |
* @param message Message to display on error. | |
*/ | |
approximately(act: number, exp: number, delta: number, message?: string): void; | |
/** | |
* Asserts that set1 and set2 have the same members. Order is not take into account. | |
* | |
* T Type of set values. | |
* @param set1 Actual set of values. | |
* @param set2 Potential expected set of values. | |
* @param message Message to display on error. | |
*/ | |
sameMembers<T>(set1: T[], set2: T[], message?: string): void; | |
/** | |
* Asserts that set1 and set2 have the same members using deep equality checking. | |
* Order is not take into account. | |
* | |
* T Type of set values. | |
* @param set1 Actual set of values. | |
* @param set2 Potential expected set of values. | |
* @param message Message to display on error. | |
*/ | |
sameDeepMembers<T>(set1: T[], set2: T[], message?: string): void; | |
/** | |
* Asserts that set1 and set2 have the same members in the same order. | |
* Uses a strict equality check (===). | |
* | |
* T Type of set values. | |
* @param set1 Actual set of values. | |
* @param set2 Potential expected set of values. | |
* @param message Message to display on error. | |
*/ | |
sameOrderedMembers<T>(set1: T[], set2: T[], message?: string): void; | |
/** | |
* Asserts that set1 and set2 don’t have the same members in the same order. | |
* Uses a strict equality check (===). | |
* | |
* T Type of set values. | |
* @param set1 Actual set of values. | |
* @param set2 Potential expected set of values. | |
* @param message Message to display on error. | |
*/ | |
notSameOrderedMembers<T>(set1: T[], set2: T[], message?: string): void; | |
/** | |
* Asserts that set1 and set2 have the same members in the same order. | |
* Uses a deep equality check. | |
* | |
* T Type of set values. | |
* @param set1 Actual set of values. | |
* @param set2 Potential expected set of values. | |
* @param message Message to display on error. | |
*/ | |
sameDeepOrderedMembers<T>(set1: T[], set2: T[], message?: string): void; | |
/** | |
* Asserts that set1 and set2 don’t have the same members in the same order. | |
* Uses a deep equality check. | |
* | |
* T Type of set values. | |
* @param set1 Actual set of values. | |
* @param set2 Potential expected set of values. | |
* @param message Message to display on error. | |
*/ | |
notSameDeepOrderedMembers<T>(set1: T[], set2: T[], message?: string): void; | |
/** | |
* Asserts that subset is included in superset in the same order beginning with the first element in superset. | |
* Uses a strict equality check (===). | |
* | |
* T Type of set values. | |
* @param superset Actual set of values. | |
* @param subset Potential contained set of values. | |
* @param message Message to display on error. | |
*/ | |
includeOrderedMembers<T>(superset: T[], subset: T[], message?: string): void; | |
/** | |
* Asserts that subset isn’t included in superset in the same order beginning with the first element in superset. | |
* Uses a strict equality check (===). | |
* | |
* T Type of set values. | |
* @param superset Actual set of values. | |
* @param subset Potential contained set of values. | |
* @param message Message to display on error. | |
*/ | |
notIncludeOrderedMembers<T>(superset: T[], subset: T[], message?: string): void; | |
/** | |
* Asserts that subset is included in superset in the same order beginning with the first element in superset. | |
* Uses a deep equality check. | |
* | |
* T Type of set values. | |
* @param superset Actual set of values. | |
* @param subset Potential contained set of values. | |
* @param message Message to display on error. | |
*/ | |
includeDeepOrderedMembers<T>(superset: T[], subset: T[], message?: string): void; | |
/** | |
* Asserts that subset isn’t included in superset in the same order beginning with the first element in superset. | |
* Uses a deep equality check. | |
* | |
* T Type of set values. | |
* @param superset Actual set of values. | |
* @param subset Potential contained set of values. | |
* @param message Message to display on error. | |
*/ | |
notIncludeDeepOrderedMembers<T>(superset: T[], subset: T[], message?: string): void; | |
/** | |
* Asserts that subset is included in superset. Order is not take into account. | |
* | |
* T Type of set values. | |
* @param superset Actual set of values. | |
* @param subset Potential contained set of values. | |
* @param message Message to display on error. | |
*/ | |
includeMembers<T>(superset: T[], subset: T[], message?: string): void; | |
/** | |
* Asserts that subset isn’t included in superset in any order. | |
* Uses a strict equality check (===). Duplicates are ignored. | |
* | |
* T Type of set values. | |
* @param superset Actual set of values. | |
* @param subset Potential not contained set of values. | |
* @param message Message to display on error. | |
*/ | |
notIncludeMembers<T>(superset: T[], subset: T[], message?: string): void; | |
/** | |
* Asserts that subset is included in superset using deep equality checking. | |
* Order is not take into account. | |
* | |
* T Type of set values. | |
* @param superset Actual set of values. | |
* @param subset Potential contained set of values. | |
* @param message Message to display on error. | |
*/ | |
includeDeepMembers<T>(superset: T[], subset: T[], message?: string): void; | |
/** | |
* Asserts that non-object, non-array value inList appears in the flat array list. | |
* | |
* T Type of list values. | |
* @param inList Value expected to be in the list. | |
* @param list List of values. | |
* @param message Message to display on error. | |
*/ | |
oneOf<T>(inList: T, list: T[], message?: string): void; | |
/** | |
* Asserts that a function changes the value of a property. | |
* | |
* T Type of object. | |
* @param modifier Function to run. | |
* @param object Container object. | |
* @param property Property of object expected to be modified. | |
* @param message Message to display on error. | |
*/ | |
changes<T>(modifier: Function, object: T, property: string, /* keyof T */ message?: string): void; | |
/** | |
* Asserts that a function does not change the value of a property. | |
* | |
* T Type of object. | |
* @param modifier Function to run. | |
* @param object Container object. | |
* @param property Property of object expected not to be modified. | |
* @param message Message to display on error. | |
*/ | |
doesNotChange<T>(modifier: Function, object: T, property: string, /* keyof T */ message?: string): void; | |
/** | |
* Asserts that a function increases an object property. | |
* | |
* T Type of object. | |
* @param modifier Function to run. | |
* @param object Container object. | |
* @param property Property of object expected to be increased. | |
* @param message Message to display on error. | |
*/ | |
increases<T>(modifier: Function, object: T, property: string, /* keyof T */ message?: string): void; | |
/** | |
* Asserts that a function does not increase an object property. | |
* | |
* T Type of object. | |
* @param modifier Function to run. | |
* @param object Container object. | |
* @param property Property of object expected not to be increased. | |
* @param message Message to display on error. | |
*/ | |
doesNotIncrease<T>(modifier: Function, object: T, property: string, /* keyof T */ message?: string): void; | |
/** | |
* Asserts that a function decreases an object property. | |
* | |
* T Type of object. | |
* @param modifier Function to run. | |
* @param object Container object. | |
* @param property Property of object expected to be decreased. | |
* @param message Message to display on error. | |
*/ | |
decreases<T>(modifier: Function, object: T, property: string, /* keyof T */ message?: string): void; | |
/** | |
* Asserts that a function does not decrease an object property. | |
* | |
* T Type of object. | |
* @param modifier Function to run. | |
* @param object Container object. | |
* @param property Property of object expected not to be decreased. | |
* @param message Message to display on error. | |
*/ | |
doesNotDecrease<T>(modifier: Function, object: T, property: string, /* keyof T */ message?: string): void; | |
/** | |
* Asserts if value is not a false value, and throws if it is a true value. | |
* | |
* T Type of object. | |
* @param object Actual value. | |
* @param message Message to display on error. | |
* @remarks This is added to allow for chai to be a drop-in replacement for | |
* Node’s assert class. | |
*/ | |
ifError<T>(object: T, message?: string): void; | |
/** | |
* Asserts that object is extensible (can have new properties added to it). | |
* | |
* T Type of object | |
* @param object Actual value. | |
* @param message Message to display on error. | |
*/ | |
isExtensible<T>(object: T, message?: string): void; | |
/** | |
* Asserts that object is extensible (can have new properties added to it). | |
* | |
* T Type of object | |
* @param object Actual value. | |
* @param message Message to display on error. | |
*/ | |
extensible<T>(object: T, message?: string): void; | |
/** | |
* Asserts that object is not extensible. | |
* | |
* T Type of object | |
* @param object Actual value. | |
* @param message Message to display on error. | |
*/ | |
isNotExtensible<T>(object: T, message?: string): void; | |
/** | |
* Asserts that object is not extensible. | |
* | |
* T Type of object | |
* @param object Actual value. | |
* @param message Message to display on error. | |
*/ | |
notExtensible<T>(object: T, message?: string): void; | |
/** | |
* Asserts that object is sealed (can have new properties added to it | |
* and its existing properties cannot be removed). | |
* | |
* T Type of object | |
* @param object Actual value. | |
* @param message Message to display on error. | |
*/ | |
isSealed<T>(object: T, message?: string): void; | |
/** | |
* Asserts that object is sealed (can have new properties added to it | |
* and its existing properties cannot be removed). | |
* | |
* T Type of object | |
* @param object Actual value. | |
* @param message Message to display on error. | |
*/ | |
sealed<T>(object: T, message?: string): void; | |
/** | |
* Asserts that object is not sealed. | |
* | |
* T Type of object | |
* @param object Actual value. | |
* @param message Message to display on error. | |
*/ | |
isNotSealed<T>(object: T, message?: string): void; | |
/** | |
* Asserts that object is not sealed. | |
* | |
* T Type of object | |
* @param object Actual value. | |
* @param message Message to display on error. | |
*/ | |
notSealed<T>(object: T, message?: string): void; | |
/** | |
* Asserts that object is frozen (cannot have new properties added to it | |
* and its existing properties cannot be removed). | |
* | |
* T Type of object | |
* @param object Actual value. | |
* @param message Message to display on error. | |
*/ | |
isFrozen<T>(object: T, message?: string): void; | |
/** | |
* Asserts that object is frozen (cannot have new properties added to it | |
* and its existing properties cannot be removed). | |
* | |
* T Type of object | |
* @param object Actual value. | |
* @param message Message to display on error. | |
*/ | |
frozen<T>(object: T, message?: string): void; | |
/** | |
* Asserts that object is not frozen (cannot have new properties added to it | |
* and its existing properties cannot be removed). | |
* | |
* T Type of object | |
* @param object Actual value. | |
* @param message Message to display on error. | |
*/ | |
isNotFrozen<T>(object: T, message?: string): void; | |
/** | |
* Asserts that object is not frozen (cannot have new properties added to it | |
* and its existing properties cannot be removed). | |
* | |
* T Type of object | |
* @param object Actual value. | |
* @param message Message to display on error. | |
*/ | |
notFrozen<T>(object: T, message?: string): void; | |
/** | |
* Asserts that the target does not contain any values. For arrays and | |
* strings, it checks the length property. For Map and Set instances, it | |
* checks the size property. For non-function objects, it gets the count | |
* of own enumerable string keys. | |
* | |
* T Type of object | |
* @param object Actual value. | |
* @param message Message to display on error. | |
*/ | |
isEmpty<T>(object: T, message?: string): void; | |
/** | |
* Asserts that the target contains values. For arrays and strings, it checks | |
* the length property. For Map and Set instances, it checks the size property. | |
* For non-function objects, it gets the count of own enumerable string keys. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param message Message to display on error. | |
*/ | |
isNotEmpty<T>(object: T, message?: string): void; | |
/** | |
* Asserts that `object` has at least one of the `keys` provided. | |
* You can also provide a single object instead of a `keys` array and its keys | |
* will be used as the expected set of keys. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param keys Keys to check | |
* @param message Message to display on error. | |
*/ | |
hasAnyKeys<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string): void; | |
/** | |
* Asserts that `object` has all and only all of the `keys` provided. | |
* You can also provide a single object instead of a `keys` array and its keys | |
* will be used as the expected set of keys. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param keys Keys to check | |
* @param message Message to display on error. | |
*/ | |
hasAllKeys<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string): void; | |
/** | |
* Asserts that `object` has all of the `keys` provided but may have more keys not listed. | |
* You can also provide a single object instead of a `keys` array and its keys | |
* will be used as the expected set of keys. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param keys Keys to check | |
* @param message Message to display on error. | |
*/ | |
containsAllKeys<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string): void; | |
/** | |
* Asserts that `object` has none of the `keys` provided. | |
* You can also provide a single object instead of a `keys` array and its keys | |
* will be used as the expected set of keys. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param keys Keys to check | |
* @param message Message to display on error. | |
*/ | |
doesNotHaveAnyKeys<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string): void; | |
/** | |
* Asserts that `object` does not have at least one of the `keys` provided. | |
* You can also provide a single object instead of a `keys` array and its keys | |
* will be used as the expected set of keys. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param keys Keys to check | |
* @param message Message to display on error. | |
*/ | |
doesNotHaveAllKeys<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string): void; | |
/** | |
* Asserts that `object` has at least one of the `keys` provided. | |
* Since Sets and Maps can have objects as keys you can use this assertion to perform | |
* a deep comparison. | |
* You can also provide a single object instead of a `keys` array and its keys | |
* will be used as the expected set of keys. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param keys Keys to check | |
* @param message Message to display on error. | |
*/ | |
hasAnyDeepKeys<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string): void; | |
/** | |
* Asserts that `object` has all and only all of the `keys` provided. | |
* Since Sets and Maps can have objects as keys you can use this assertion to perform | |
* a deep comparison. | |
* You can also provide a single object instead of a `keys` array and its keys | |
* will be used as the expected set of keys. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param keys Keys to check | |
* @param message Message to display on error. | |
*/ | |
hasAllDeepKeys<T>(object: T, keys: Array<Object | string> | { [key: string]: any }, message?: string): void; | |
/** | |
* Asserts that `object` contains all of the `keys` provided. | |
* Since Sets and Maps can have objects as keys you can use this assertion to perform | |
* a deep comparison. | |
* You can also provide a single object instead of a `keys` array and its keys | |
* will be used as the expected set of keys. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param keys Keys to check | |
* @param message Message to display on error. | |
*/ | |
containsAllDeepKeys<T>( | |
object: T, | |
keys: Array<Object | string> | { [key: string]: any }, | |
message?: string, | |
): void; | |
/** | |
* Asserts that `object` contains all of the `keys` provided. | |
* Since Sets and Maps can have objects as keys you can use this assertion to perform | |
* a deep comparison. | |
* You can also provide a single object instead of a `keys` array and its keys | |
* will be used as the expected set of keys. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param keys Keys to check | |
* @param message Message to display on error. | |
*/ | |
doesNotHaveAnyDeepKeys<T>( | |
object: T, | |
keys: Array<Object | string> | { [key: string]: any }, | |
message?: string, | |
): void; | |
/** | |
* Asserts that `object` contains all of the `keys` provided. | |
* Since Sets and Maps can have objects as keys you can use this assertion to perform | |
* a deep comparison. | |
* You can also provide a single object instead of a `keys` array and its keys | |
* will be used as the expected set of keys. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param keys Keys to check | |
* @param message Message to display on error. | |
*/ | |
doesNotHaveAllDeepKeys<T>( | |
object: T, | |
keys: Array<Object | string> | { [key: string]: any }, | |
message?: string, | |
): void; | |
/** | |
* Asserts that object has a direct or inherited property named by property, | |
* which can be a string using dot- and bracket-notation for nested reference. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param property Property to test. | |
* @param message Message to display on error. | |
*/ | |
nestedProperty<T>(object: T, property: string, message?: string): void; | |
/** | |
* Asserts that object does not have a property named by property, | |
* which can be a string using dot- and bracket-notation for nested reference. | |
* The property cannot exist on the object nor anywhere in its prototype chain. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param property Property to test. | |
* @param message Message to display on error. | |
*/ | |
notNestedProperty<T>(object: T, property: string, message?: string): void; | |
/** | |
* Asserts that object has a property named by property with value given by value. | |
* property can use dot- and bracket-notation for nested reference. Uses a strict equality check (===). | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param property Property to test. | |
* @param value Value to test. | |
* @param message Message to display on error. | |
*/ | |
nestedPropertyVal<T>(object: T, property: string, value: any, message?: string): void; | |
/** | |
* Asserts that object does not have a property named by property with value given by value. | |
* property can use dot- and bracket-notation for nested reference. Uses a strict equality check (===). | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param property Property to test. | |
* @param value Value to test. | |
* @param message Message to display on error. | |
*/ | |
notNestedPropertyVal<T>(object: T, property: string, value: any, message?: string): void; | |
/** | |
* Asserts that object has a property named by property with a value given by value. | |
* property can use dot- and bracket-notation for nested reference. Uses a deep equality check. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param property Property to test. | |
* @param value Value to test. | |
* @param message Message to display on error. | |
*/ | |
deepNestedPropertyVal<T>(object: T, property: string, value: any, message?: string): void; | |
/** | |
* Asserts that object does not have a property named by property with value given by value. | |
* property can use dot- and bracket-notation for nested reference. Uses a deep equality check. | |
* | |
* T Type of object. | |
* @param object Object to test. | |
* @param property Property to test. | |
* @param value Value to test. | |
* @param message Message to display on error. | |
*/ | |
notDeepNestedPropertyVal<T>(object: T, property: string, value: any, message?: string): void; | |
} | |
export interface Config { | |
/** | |
* Default: false | |
*/ | |
includeStack: boolean; | |
/** | |
* Default: true | |
*/ | |
showDiff: boolean; | |
/** | |
* Default: 40 | |
*/ | |
truncateThreshold: number; | |
/** | |
* Default: true | |
*/ | |
useProxy: boolean; | |
/** | |
* Default: ['then', 'catch', 'inspect', 'toJSON'] | |
*/ | |
proxyExcludedKeys: string[]; | |
} | |
export class AssertionError { | |
constructor(message: string, _props?: any, ssf?: Function); | |
name: string; | |
message: string; | |
showDiff: boolean; | |
stack: string; | |
} | |
} | |
declare const chai: Chai.ChaiStatic; | |
declare module "chai" { | |
export = chai; | |
} | |
// interface Object { | |
// should: Chai.Assertion; | |
// } | |