|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- # jest-validate
-
- Generic configuration validation tool that helps you with warnings, errors and deprecation messages as well as showing users examples of correct configuration.
-
- ```bash
- npm install --save jest-validate
- ```
-
- ## Usage
-
- ```js
- import {validate} from 'jest-validate';
-
- validate((config: Object), (options: ValidationOptions)); // => {hasDeprecationWarnings: boolean, isValid: boolean}
- ```
-
- Where `ValidationOptions` are:
-
- ```js
- type ValidationOptions = {
- blacklist?: Array<string>,
- comment?: string,
- condition?: (option: any, validOption: any) => boolean,
- deprecate?: (
- config: Object,
- option: string,
- deprecatedOptions: Object,
- options: ValidationOptions,
- ) => true,
- deprecatedConfig?: {[key: string]: Function},
- error?: (
- option: string,
- received: any,
- defaultValue: any,
- options: ValidationOptions,
- ) => void,
- exampleConfig: Object,
- recursive?: boolean,
- title?: Title,
- unknown?: (
- config: Object,
- exampleConfig: Object,
- option: string,
- options: ValidationOptions,
- ) => void,
- };
-
- type Title = {|
- deprecation?: string,
- error?: string,
- warning?: string,
- |};
- ```
-
- `exampleConfig` is the only option required.
-
- ## API
-
- By default `jest-validate` will print generic warning and error messages. You can however customize this behavior by providing `options: ValidationOptions` object as a second argument:
-
- Almost anything can be overwritten to suite your needs.
-
- ### Options
-
- - `recursiveBlacklist` – optional array of string keyPaths that should be excluded from deep (recursive) validation.
- - `comment` – optional string to be rendered below error/warning message.
- - `condition` – an optional function with validation condition.
- - `deprecate`, `error`, `unknown` – optional functions responsible for displaying warning and error messages.
- - `deprecatedConfig` – optional object with deprecated config keys.
- - `exampleConfig` – the only **required** option with configuration against which you'd like to test.
- - `recursive` - optional boolean determining whether recursively compare `exampleConfig` to `config` (default: `true`).
- - `title` – optional object of titles for errors and messages.
-
- You will find examples of `condition`, `deprecate`, `error`, `unknown`, and `deprecatedConfig` inside source of this repository, named respectively.
-
- ## Examples
-
- Minimal example:
-
- ```js
- validate(config, {exampleConfig});
- ```
-
- Example with slight modifications:
-
- ```js
- validate(config, {
- comment: ' Documentation: http://custom-docs.com',
- deprecatedConfig,
- exampleConfig,
- title: {
- deprecation: 'Custom Deprecation',
- // leaving 'error' and 'warning' as default
- },
- });
- ```
-
- This will output:
-
- #### Warning:
-
- ```bash
- ● Validation Warning:
-
- Unknown option transformx with value "<rootDir>/node_modules/babel-jest" was found.
- This is either a typing error or a user mistake. Fixing it will remove this message.
-
- Documentation: http://custom-docs.com
- ```
-
- #### Error:
-
- ```bash
- ● Validation Error:
-
- Option transform must be of type:
- object
- but instead received:
- string
-
- Example:
- {
- "transform": {
- "^.+\\.js$": "<rootDir>/preprocessor.js"
- }
- }
-
- Documentation: http://custom-docs.com
- ```
-
- #### Deprecation
-
- Based on `deprecatedConfig` object with proper deprecation messages. Note custom title:
-
- ```bash
- Custom Deprecation:
-
- Option scriptPreprocessor was replaced by transform, which support multiple preprocessors.
-
- Jest now treats your current configuration as:
- {
- "transform": {".*": "xxx"}
- }
-
- Please update your configuration.
-
- Documentation: http://custom-docs.com
- ```
|