Jest expectations for the purify-ts library
npm install purify-asserts!Version
!Downloads
!License
!GitHub issues
!GitHub Repo stars
> Jest expectations for the purify-ts library
Purify is an excellent library for functional TypeScript applications, but its algebraic data types are not so obvious to test. Specifically, the following convention examples are not easy to remember in the scope of unit tests.
``ts
expect(maybe.isJust()).toBe(true);
expect(maybe.isNothing()).toBe(true);
expect(maybe.extract()).toEqual("value");
expect(either.isLeft()).toBe(false);
expect(either.isRight()).toBe(true);
expect(either.extract()).toEqual("is this success or error?");
`
Wouldn't it be more satisfying to assert expectations with the same domain language Purify speaks of? I think so.
`ts`
expect(possiblyNullableMaybe).toBeJust();
expect(justOrNothing).toBeNothing();
expect(justOrNothing).toHaveJustValue(1);
`sh`
npm install --save-dev purify-asserts
yarn add --dev purify-asserts
Using matchers requires to use the expect.extend() method of Jest. These should be imported and used at the beginning of your test suite above the first describe() block.
Import all of the matchers:
`ts
import * as matchers from "purify-asserts";
expect.extend(matchers);
`
Import only selected matchers:
`ts
import { toBeJust, toBeNothing } from "purify-asserts";
expect.extend({ toBeJust, toBeNothing });
`
- Examples for using Maybe matchersEither
- Examples for using matchers (work in progress)MaybeAsync
- Examples for using matchers (work in progress)EitherAsync
- Examples for using matchers (work in progress)Tuple
- Examples for using matchers (work in progress)NonEmptyList
- Examples for using matchers (work in progress)Codec
- Examples for using
👤 Niko Heikkilä
- Website:
- Mastodon: @nikoheikkila
- Github: @nikoheikkila
- LinkedIn: @nikoheikkila
Contributions, issues and feature requests are welcome!
Feel free to check issues page.
Give a ⭐️ if this project helped you!
---
_This README was generated with ❤️ by readme-md-generator_