fix(readme): Update usage examples and full matcher reference in README
This commit is contained in:
parent
0d9fa72b29
commit
a3d5892a13
@ -1,5 +1,12 @@
|
||||
# Changelog
|
||||
|
||||
## 2025-04-29 - 2.2.1 - fix(readme)
|
||||
Update usage examples and full matcher reference in README
|
||||
|
||||
- Removed deprecated 'expectAsync' from import example
|
||||
- Fixed formatting in documentation
|
||||
- Added comprehensive full matcher reference section
|
||||
|
||||
## 2025-04-29 - 2.2.0 - feat(generics)
|
||||
Improve assertion and matcher type definitions by adding execution mode generics for better async/sync support
|
||||
|
||||
|
92
readme.md
92
readme.md
@ -20,7 +20,7 @@ This will add `@push.rocks/smartexpect` to your project's dependencies. Make sur
|
||||
First, import `@push.rocks/smartexpect` into your TypeScript file:
|
||||
|
||||
```typescript
|
||||
import { expect, expectAsync } from '@push.rocks/smartexpect';
|
||||
import { expect } from '@push.rocks/smartexpect';
|
||||
```
|
||||
|
||||
### Synchronous Expectations
|
||||
@ -254,6 +254,96 @@ expect(4).not.toBeOdd();
|
||||
- Matcher functions receive the value under test (`received`) plus any arguments.
|
||||
- Must return an object with `pass` (boolean) and `message` (string or function) for failure messages.
|
||||
|
||||
### Full Matcher Reference
|
||||
|
||||
Below is a comprehensive list of all matchers and utility functions available in `@push.rocks/smartexpect`.
|
||||
|
||||
#### Modifiers and Utilities
|
||||
- `.not` Negates the next matcher in the chain.
|
||||
- `.resolves` Switches to async mode, expecting the promise to resolve.
|
||||
- `.rejects` Switches to async mode, expecting the promise to reject.
|
||||
- `.withTimeout(ms)` Sets a timeout (in milliseconds) for async assertions.
|
||||
- `.timeout(ms)` (deprecated) Alias for `.withTimeout(ms)`.
|
||||
- `.property(name)` Drill into a property of an object.
|
||||
- `.arrayItem(index)` Drill into an array element by index.
|
||||
- `.log()` Logs the current value and assertion path for debugging.
|
||||
- `.setFailMessage(message)` Override the failure message for the current assertion.
|
||||
- `.setSuccessMessage(message)` Override the success message for the current assertion.
|
||||
- `.customAssertion(fn, message)` Execute a custom assertion function with a message.
|
||||
- `expect.extend(matchers)` Register custom matchers globally.
|
||||
- `expect.any(constructor)` Matcher for values that are instances of the given constructor.
|
||||
- `expect.anything()` Matcher for any defined value (not null or undefined).
|
||||
|
||||
#### Basic Matchers
|
||||
- `.toEqual(expected)` Deep (or strict for primitives) equality.
|
||||
- `.toBeTrue()` Value is strictly `true`.
|
||||
- `.toBeFalse()` Value is strictly `false`.
|
||||
- `.toBeTruthy()` Value is truthy.
|
||||
- `.toBeFalsy()` Value is falsy.
|
||||
- `.toBeNull()` Value is `null`.
|
||||
- `.toBeUndefined()` Value is `undefined`.
|
||||
- `.toBeNullOrUndefined()` Value is `null` or `undefined`.
|
||||
- `.toBeDefined()` Value is not `undefined`.
|
||||
|
||||
#### Number Matchers
|
||||
- `.toBeGreaterThan(value)`
|
||||
- `.toBeLessThan(value)`
|
||||
- `.toBeGreaterThanOrEqual(value)`
|
||||
- `.toBeLessThanOrEqual(value)`
|
||||
- `.toBeCloseTo(value, precision?)`
|
||||
- `.toEqual(value)` Strict equality for numbers.
|
||||
- `.toBeNaN()`
|
||||
- `.toBeFinite()`
|
||||
- `.toBeWithinRange(min, max)`
|
||||
|
||||
#### String Matchers
|
||||
- `.toStartWith(prefix)`
|
||||
- `.toEndWith(suffix)`
|
||||
- `.toInclude(substring)`
|
||||
- `.toMatch(regex)`
|
||||
- `.toBeOneOf(arrayOfValues)`
|
||||
- `.toHaveLength(length)`
|
||||
- `.toBeEmpty()` Alias for empty string.
|
||||
|
||||
#### Array Matchers
|
||||
- `.toBeArray()`
|
||||
- `.toHaveLength(length)`
|
||||
- `.toContain(value)`
|
||||
- `.toContainEqual(value)`
|
||||
- `.toContainAll(arrayOfValues)`
|
||||
- `.toExclude(value)`
|
||||
- `.toBeEmptyArray()`
|
||||
- `.toBeEmpty()` Alias for empty array.
|
||||
- `.toHaveLengthGreaterThan(length)`
|
||||
- `.toHaveLengthLessThan(length)`
|
||||
|
||||
#### Object Matchers
|
||||
- `.toEqual(expected)` Deep equality for objects.
|
||||
- `.toMatchObject(partialObject)` Partial deep matching (supports `expect.any` and `expect.anything`).
|
||||
- `.toBeInstanceOf(constructor)`
|
||||
- `.toHaveProperty(propertyName, value?)`
|
||||
- `.toHaveDeepProperty(pathArray)`
|
||||
- `.toHaveOwnProperty(propertyName, value?)`
|
||||
- `.toBeNull()`
|
||||
- `.toBeUndefined()`
|
||||
- `.toBeNullOrUndefined()`
|
||||
|
||||
#### Function Matchers
|
||||
- `.toThrow(expectedError?)`
|
||||
- `.toThrowErrorMatching(regex)`
|
||||
- `.toThrowErrorWithMessage(message)`
|
||||
|
||||
#### Date Matchers
|
||||
- `.toBeDate()`
|
||||
- `.toBeBeforeDate(date)`
|
||||
- `.toBeAfterDate(date)`
|
||||
|
||||
#### Type Matchers
|
||||
- `.toBeTypeofString()`
|
||||
- `.toBeTypeofNumber()`
|
||||
- `.toBeTypeofBoolean()`
|
||||
- `.toBeTypeOf(typeName)`
|
||||
|
||||
## Best Practices
|
||||
|
||||
- **Human-readable assertions**: The fluent API is designed to create tests that read like natural language sentences.
|
||||
|
@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@push.rocks/smartexpect',
|
||||
version: '2.2.0',
|
||||
version: '2.2.1',
|
||||
description: 'A testing library to manage expectations in code, offering both synchronous and asynchronous assertion methods.'
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user