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
|
# 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)
|
## 2025-04-29 - 2.2.0 - feat(generics)
|
||||||
Improve assertion and matcher type definitions by adding execution mode generics for better async/sync support
|
Improve assertion and matcher type definitions by adding execution mode generics for better async/sync support
|
||||||
|
|
||||||
|
94
readme.md
94
readme.md
@ -17,10 +17,10 @@ This will add `@push.rocks/smartexpect` to your project's dependencies. Make sur
|
|||||||
|
|
||||||
### Getting Started
|
### Getting Started
|
||||||
|
|
||||||
First, import `@push.rocks/smartexpect` into your TypeScript file:
|
First, import `@push.rocks/smartexpect` into your TypeScript file:
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
import { expect, expectAsync } from '@push.rocks/smartexpect';
|
import { expect } from '@push.rocks/smartexpect';
|
||||||
```
|
```
|
||||||
|
|
||||||
### Synchronous Expectations
|
### Synchronous Expectations
|
||||||
@ -254,6 +254,96 @@ expect(4).not.toBeOdd();
|
|||||||
- Matcher functions receive the value under test (`received`) plus any arguments.
|
- 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.
|
- 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
|
## Best Practices
|
||||||
|
|
||||||
- **Human-readable assertions**: The fluent API is designed to create tests that read like natural language sentences.
|
- **Human-readable assertions**: The fluent API is designed to create tests that read like natural language sentences.
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@push.rocks/smartexpect',
|
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.'
|
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