1255 lines
43 KiB
TypeScript
1255 lines
43 KiB
TypeScript
// Type definitions for chai 4.0.0
|
||
// Project: http://chaijs.com/
|
||
// Definitions by: Jed Mao <https://github.com/jedmao/>,
|
||
// 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>,
|
||
// Josh Goldberg <https://github.com/joshuakgoldberg>
|
||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||
|
||
// <reference types="assertion-error"/>
|
||
|
||
// tslint:disable:no-namespace member-ordering ban-types unified-signatures variable-name callable-types
|
||
declare namespace Chai {
|
||
interface ChaiStatic {
|
||
expect: ExpectStatic;
|
||
should(): Should;
|
||
/**
|
||
* Provides a way to extend the internals of Chai
|
||
*/
|
||
use(fn: (chai: any, utils: any) => void): ChaiStatic;
|
||
assert: AssertStatic;
|
||
config: Config;
|
||
AssertionError: typeof AssertionError;
|
||
version: string;
|
||
}
|
||
|
||
export interface ExpectStatic extends AssertionStatic {
|
||
fail(actual?: any, expected?: any, message?: string, operator?: Operator): void;
|
||
}
|
||
|
||
export interface AssertStatic extends Assert {}
|
||
|
||
type AssertionStatic = (target: any, message?: string) => Assertion;
|
||
|
||
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(actual: any, expected: any, message?: string, operator?: Operator): void;
|
||
}
|
||
|
||
interface ShouldThrow {
|
||
(actual: Function): void;
|
||
(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;
|
||
nested: Nested;
|
||
any: KeyFilter;
|
||
all: KeyFilter;
|
||
a: TypeComparison;
|
||
an: TypeComparison;
|
||
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;
|
||
equal: Equal;
|
||
equals: Equal;
|
||
eq: Equal;
|
||
eql: Equal;
|
||
eqls: Equal;
|
||
property: Property;
|
||
ownProperty: OwnProperty;
|
||
haveOwnProperty: OwnProperty;
|
||
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: (message?: string) => Assertion;
|
||
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(list: any[], message?: string): Assertion;
|
||
}
|
||
|
||
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;
|
||
}
|
||
|
||
interface NumericComparison {
|
||
above: NumberComparer;
|
||
gt: NumberComparer;
|
||
greaterThan: NumberComparer;
|
||
least: NumberComparer;
|
||
gte: NumberComparer;
|
||
below: NumberComparer;
|
||
lt: NumberComparer;
|
||
lessThan: NumberComparer;
|
||
most: NumberComparer;
|
||
lte: NumberComparer;
|
||
within(start: number, finish: number, message?: string): Assertion;
|
||
}
|
||
|
||
interface NumberComparer {
|
||
(value: number, message?: string): Assertion;
|
||
}
|
||
|
||
interface TypeComparison {
|
||
(type: string, message?: string): Assertion;
|
||
instanceof: InstanceOf;
|
||
instanceOf: InstanceOf;
|
||
}
|
||
|
||
interface InstanceOf {
|
||
(constructor: Object, message?: string): Assertion;
|
||
}
|
||
|
||
interface CloseTo {
|
||
(expected: number, delta: number, message?: string): Assertion;
|
||
}
|
||
|
||
interface Nested {
|
||
include: Include;
|
||
property: Property;
|
||
members: Members;
|
||
}
|
||
|
||
interface Deep {
|
||
equal: Equal;
|
||
equals: Equal;
|
||
eq: Equal;
|
||
include: Include;
|
||
property: Property;
|
||
members: Members;
|
||
}
|
||
|
||
interface KeyFilter {
|
||
keys: Keys;
|
||
}
|
||
|
||
interface Equal {
|
||
(value: any, message?: string): Assertion;
|
||
}
|
||
|
||
interface Property {
|
||
(name: string, value?: any, message?: string): Assertion;
|
||
}
|
||
|
||
interface OwnProperty {
|
||
(name: string, message?: string): Assertion;
|
||
}
|
||
|
||
interface OwnPropertyDescriptor {
|
||
(name: string, descriptor: PropertyDescriptor, message?: string): Assertion;
|
||
(name: string, message?: string): Assertion;
|
||
}
|
||
|
||
interface Length extends LanguageChains, NumericComparison {
|
||
(length: number, message?: string): Assertion;
|
||
}
|
||
|
||
interface Include {
|
||
(value: Object | string | number, message?: string): Assertion;
|
||
keys: Keys;
|
||
members: Members;
|
||
any: KeyFilter;
|
||
all: KeyFilter;
|
||
}
|
||
|
||
interface Match {
|
||
(regexp: RegExp | string, message?: string): Assertion;
|
||
}
|
||
|
||
interface Keys {
|
||
(...keys: string[]): Assertion;
|
||
(keys: any[]): Assertion;
|
||
(keys: Object): Assertion;
|
||
}
|
||
|
||
interface Throw {
|
||
(): Assertion;
|
||
(expected: string, message?: string): Assertion;
|
||
(expected: RegExp, message?: string): Assertion;
|
||
(constructor: Error, expected?: string, message?: string): Assertion;
|
||
(constructor: Error, expected?: RegExp, message?: string): Assertion;
|
||
(constructor: Function, expected?: string, message?: string): Assertion;
|
||
(constructor: Function, expected?: RegExp, message?: string): Assertion;
|
||
}
|
||
|
||
interface RespondTo {
|
||
(method: string, message?: string): Assertion;
|
||
}
|
||
|
||
interface Satisfy {
|
||
(matcher: Function, message?: string): Assertion;
|
||
}
|
||
|
||
interface Members {
|
||
(set: any[], message?: string): Assertion;
|
||
}
|
||
|
||
interface PropertyChange {
|
||
(object: Object, property: string, message?: string): Assertion;
|
||
}
|
||
|
||
export interface Assert {
|
||
/**
|
||
* @param expression Expression to test for truthiness.
|
||
* @param message Message to display on error.
|
||
*/
|
||
(expression: any, message?: string): void;
|
||
|
||
/**
|
||
* Throws a failure.
|
||
*
|
||
* @type 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): void;
|
||
|
||
/**
|
||
* Asserts that object is truthy.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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;
|
||
|
||
/**
|
||
* 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 greater 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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 not null.
|
||
*
|
||
* @type 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 null.
|
||
*
|
||
* @type T Type of value.
|
||
* @param value Actual value.
|
||
* @param message Message to display on error.
|
||
*/
|
||
isNotNaN<T>(value: T, message?: string): void;
|
||
|
||
/**
|
||
* Asserts that value is undefined.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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).
|
||
*
|
||
* @type 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).
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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 boolean.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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 expected substring of haystack.
|
||
* @param message Message to display on error.
|
||
*/
|
||
include(haystack: string, needle: string, message?: string): void;
|
||
|
||
/**
|
||
* Asserts that haystack includes needle.
|
||
*
|
||
* @type T Type of values in haystack.
|
||
* @param haystack Container array.
|
||
* @param needle Potential value contained in haystack.
|
||
* @param message Message to display on error.
|
||
*/
|
||
include<T>(haystack: T[], needle: T, message?: string): void;
|
||
|
||
/**
|
||
* Asserts that haystack does not include needle.
|
||
*
|
||
* @param haystack Container string.
|
||
* @param needle Potential expected substring of haystack.
|
||
* @param message Message to display on error.
|
||
*/
|
||
notInclude(haystack: string, needle: any, message?: string): void;
|
||
|
||
/**
|
||
* Asserts that haystack does not include needle.
|
||
*
|
||
* @type T Type of values in haystack.
|
||
* @param haystack Container array.
|
||
* @param needle Potential value contained in haystack.
|
||
* @param message Message to display on error.
|
||
*/
|
||
notInclude(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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type T Type of object.
|
||
* @type 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.
|
||
*
|
||
* @type T Type of object.
|
||
* @type 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.
|
||
*/
|
||
propertyNotVal<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.
|
||
*
|
||
* @type T Type of object.
|
||
* @type 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.
|
||
*
|
||
* @type T Type of object.
|
||
* @type 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.
|
||
*/
|
||
deepPropertyNotVal<T, V>(object: T, property: string, value: V, message?: string): void;
|
||
|
||
/**
|
||
* Asserts that object has a length property with the expected value.
|
||
*
|
||
* @type 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 }>(object: T, length: number, message?: string): void;
|
||
|
||
/**
|
||
* Asserts that fn will throw an error.
|
||
*
|
||
* @param fn Function that may throw.
|
||
* @param message Message to display on error.
|
||
*/
|
||
throw(fn: Function, message?: string): void;
|
||
|
||
/**
|
||
* Asserts that function will throw an error with message matching regexp.
|
||
*
|
||
* @param fn Function that may throw.
|
||
* @param regExp Potential expected message match.
|
||
* @param message Message to display on error.
|
||
*/
|
||
throw(fn: Function, regExp: RegExp): void;
|
||
|
||
/**
|
||
* Asserts that function will throw an error that is an instance of constructor.
|
||
*
|
||
* @param fn Function that may throw.
|
||
* @param constructor Potential expected error constructor.
|
||
* @param message Message to display on error.
|
||
*/
|
||
throw(fn: Function, constructor: Function, message?: string): void;
|
||
|
||
/**
|
||
* Asserts that function will throw an error that is an instance of constructor
|
||
* and an error with message matching regexp.
|
||
*
|
||
* @param fn Function that may throw.
|
||
* @param constructor Potential expected error constructor.
|
||
* @param message Message to display on error.
|
||
*/
|
||
throw(fn: Function, constructor: Function, regExp: RegExp): void;
|
||
|
||
/**
|
||
* Asserts that fn will throw an error.
|
||
*
|
||
* @param fn Function that may throw.
|
||
* @param message Message to display on error.
|
||
*/
|
||
throws(fn: Function, message?: string): void;
|
||
|
||
/**
|
||
* Asserts that function will throw an error with message matching regexp.
|
||
*
|
||
* @param fn Function that may throw.
|
||
* @param regExp Potential expected message match.
|
||
* @param message Message to display on error.
|
||
*/
|
||
throws(fn: Function, regExp: RegExp, message?: string): void;
|
||
|
||
/**
|
||
* Asserts that function will throw an error that is an instance of constructor.
|
||
*
|
||
* @param fn Function that may throw.
|
||
* @param constructor Potential expected error constructor.
|
||
* @param message Message to display on error.
|
||
*/
|
||
throws(fn: Function, errType: Function, message?: string): void;
|
||
|
||
/**
|
||
* Asserts that function will throw an error that is an instance of constructor
|
||
* and an error with message matching regexp.
|
||
*
|
||
* @param fn Function that may throw.
|
||
* @param constructor Potential expected error constructor.
|
||
* @param message Message to display on error.
|
||
*/
|
||
throws(fn: Function, errType: Function, regExp: RegExp): void;
|
||
|
||
/**
|
||
* Asserts that fn will throw an error.
|
||
*
|
||
* @param fn Function that may throw.
|
||
* @param message Message to display on error.
|
||
*/
|
||
Throw(fn: Function, message?: string): void;
|
||
|
||
/**
|
||
* Asserts that function will throw an error with message matching regexp.
|
||
*
|
||
* @param fn Function that may throw.
|
||
* @param regExp Potential expected message match.
|
||
* @param message Message to display on error.
|
||
*/
|
||
Throw(fn: Function, regExp: RegExp): void;
|
||
|
||
/**
|
||
* Asserts that function will throw an error that is an instance of constructor.
|
||
*
|
||
* @param fn Function that may throw.
|
||
* @param constructor Potential expected error constructor.
|
||
* @param message Message to display on error.
|
||
*/
|
||
Throw(fn: Function, errType: Function, message?: string): void;
|
||
|
||
/**
|
||
* Asserts that function will throw an error that is an instance of constructor
|
||
* and an error with message matching regexp.
|
||
*
|
||
* @param fn Function that may throw.
|
||
* @param constructor Potential expected error constructor.
|
||
* @param message Message to display on error.
|
||
*/
|
||
Throw(fn: Function, errType: Function, regExp: RegExp): void;
|
||
|
||
/**
|
||
* Asserts that fn will not throw an error.
|
||
*
|
||
* @param fn Function that may throw.
|
||
* @param message Message to display on error.
|
||
*/
|
||
doesNotThrow(fn: Function, message?: string): void;
|
||
|
||
/**
|
||
* Asserts that function will throw an error with message matching regexp.
|
||
*
|
||
* @param fn Function that may throw.
|
||
* @param regExp Potential expected message match.
|
||
* @param message Message to display on error.
|
||
*/
|
||
doesNotThrow(fn: Function, regExp: RegExp): void;
|
||
|
||
/**
|
||
* Asserts that function will throw an error that is an instance of constructor.
|
||
*
|
||
* @param fn Function that may throw.
|
||
* @param constructor Potential expected error constructor.
|
||
* @param message Message to display on error.
|
||
*/
|
||
doesNotThrow(fn: Function, errType: Function, message?: string): void;
|
||
|
||
/**
|
||
* Asserts that function will throw an error that is an instance of constructor
|
||
* and an error with message matching regexp.
|
||
*
|
||
* @param fn Function that may throw.
|
||
* @param constructor Potential expected error constructor.
|
||
* @param message Message to display on error.
|
||
*/
|
||
doesNotThrow(fn: Function, errType: Function, regExp: RegExp): 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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 subset is included in superset. Order is not take into account.
|
||
*
|
||
* @type 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 is included in superset using deep equality checking.
|
||
* Order is not take into account.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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).
|
||
*
|
||
* @type 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).
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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).
|
||
*
|
||
* @type 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).
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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.
|
||
*
|
||
* @type 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).
|
||
*
|
||
* @type 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).
|
||
*
|
||
* @type 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).
|
||
*
|
||
* @type 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).
|
||
*
|
||
* @type T Type of object
|
||
* @param object Actual value.
|
||
* @param message Message to display on error.
|
||
*/
|
||
notFrozen<T>(object: T, message?: string): void;
|
||
}
|
||
|
||
export interface Config {
|
||
/**
|
||
* Default: false
|
||
*/
|
||
includeStack: boolean;
|
||
|
||
/**
|
||
* Default: true
|
||
*/
|
||
showDiff: boolean;
|
||
|
||
/**
|
||
* Default: 40
|
||
*/
|
||
truncateThreshold: number;
|
||
}
|
||
|
||
export class AssertionError {
|
||
constructor(message: string, _props?: any, ssf?: Function);
|
||
public name: string;
|
||
public message: string;
|
||
public showDiff: boolean;
|
||
public stack: string;
|
||
}
|
||
}
|
||
|
||
declare const chai: Chai.ChaiStatic;
|
||
|
||
declare module 'chai' {
|
||
export = chai;
|
||
}
|
||
|
||
interface Object {
|
||
should: Chai.Assertion;
|
||
}
|