more-jest
TypeScript utilities for Jest
more-jest is a TypeScript library providing enhanced TypeScript support for Jest.
Installation
The package on NPM is:
@giancosta86/omnicourse
The public API entirely resides in the root package index, so you shouldn't reference specific modules.
Matchers
To use the matchers provided by more-jest
within a project, one needs to:
-
Add the following attribute to the object exported by
jest.config.js
:setupFilesAfterEnv: ["@giancosta86/more-jest/dist/all"],
-
Add this line to a
global.d.ts
file within the project root directory:import "@giancosta86/more-jest";
-
Add
"./global.d.ts"
to theinclude
array intsconfig.json
Usage
Equality.addTesterFor(classType)
Takes a parameter of class T
containing a method defined as:
equals(other: T): boolean {}
and registers into Jest an equality tester that:
-
returns
undefined
if either equality operand is not an instance of classT
-
otherwise, returns calls
optionalEquals()
as defined by @giancosta86/swanlake
Equality.test
Runs a suite of equality-related tests, inside a describe
block having title «equality».
It takes the following parameters:
-
a factory used to create a reference object and its equal copies
-
a factory used to create a different object, not equal to the reference instance
Comparison.test
Runs a suite of comparison-related tests based on a Comp
algorithm, within a «comparison» describe
block.
It takes an object with the following parameters:
-
comp
: theComp
object to be tested -
scrambledItems
: the items in any chaotic state -
sortedItems
: the items in the expected order
Matchers
-
.toBeTrimmed()
: expects that a string be trimmed -
.toEqualSequence(expected)
: expects that an iterable has the same items, in the same order, as the given iterable. The iterables can be of different types -
.toHaveSameJson(expected)
: expects that a value be serialized to JSON as the given object
See also
-
more-jest-io - this library's I/O-related counterpart
-
jest-extended - Additional Jest matchers