Socket
Socket
Sign inDemoInstall

jest-validate

Package Overview
Dependencies
11
Maintainers
5
Versions
218
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    jest-validate

Generic configuration validation tool that helps you with warnings, errors and deprecation messages as well as showing users examples of correct configuration.


Version published
Weekly downloads
26M
decreased by-0.39%
Maintainers
5
Install size
545 kB
Created
Weekly downloads
Ā 

Package description

What is jest-validate?

The jest-validate package is a utility for validating and ensuring that configurations passed to Jest, the JavaScript testing framework, are correct. It checks if the provided configuration object adheres to Jest's expected configurations and provides warnings or errors for any invalid or unknown options. This helps developers to quickly identify issues with their Jest setup.

What are jest-validate's main functionalities?

Validation of configuration objects

This feature allows developers to validate their Jest configuration objects against a schema. It ensures that the configuration provided matches the expected format and values that Jest can work with.

{"validateConfig": require('jest-validate').validateConfig, "config": { "verbose": true }, "exampleConfig": { "verbose": false }}

Customization of validation messages

Developers can provide custom messages for unknown or deprecated options. This helps in guiding the user to correct their configuration with helpful feedback.

{"validateConfig": require('jest-validate').validateConfig, "config": { "unknownOption": true }, "exampleConfig": { "verbose": false }, "options": { "comment": "A custom message for unknownOption" }}

Deprecation warnings

jest-validate can warn users about deprecated configuration options. It provides a mechanism to inform users about the new options they should use instead.

{"validateConfig": require('jest-validate').validateConfig, "config": { "scriptPreprocessor": "<rootDir>/preprocessor.js" }, "exampleConfig": { "transform": {"^.+\\.js$": "<rootDir>/preprocessor.js"} }, "deprecatedConfig": { "scriptPreprocessor": "Please use `transform` instead" }}

Other packages similar to jest-validate

Changelog

Source

jest 22.0.0

Fixes

  • [jest-resolve] Use module.builtinModules as BUILTIN_MODULES when it exists
  • [jest-worker] Remove debug and inspect flags from the arguments sent to the child (#5068)
  • [jest-config] Use all --testPathPattern and <regexForTestFiles> args in testPathPattern (#5066)
  • [jest-cli] Do not support --watch inside non-version-controlled environments (#5060)
  • [jest-config] Escape Windows path separator in testPathPattern CLI arguments (#5054)
  • [jest-jasmine] Register sourcemaps as node environment to improve performance with jsdom (#5045)
  • [pretty-format] Do not call toJSON recursively (#5044)
  • [pretty-format] Fix errors when identity-obj-proxy mocks CSS Modules (#4935)
  • [babel-jest] Fix support for namespaced babel version 7 (#4918)
  • [expect] fix .toThrow for promises (#4884)
  • [jest-docblock] pragmas should preserve urls (#4837)
  • [jest-cli] Check if npm_lifecycle_script calls Jest directly (#4629)
  • [jest-cli] Fix --showConfig to show all configs (#4494)
  • [jest-cli] Throw if maxWorkers doesn't have a value (#4591)
  • [jest-cli] Use fs.realpathSync.native if available (#5031)
  • [jest-config] Fix --passWithNoTests (#4639)
  • [jest-config] Support rootDir tag in testEnvironment (#4579)
  • [jest-editor-support] Fix --showConfig to support jest 20 and jest 21 (#4575)
  • [jest-editor-support] Fix editor support test for node 4 (#4640)
  • [jest-mock] Support mocking constructor in mockImplementationOnce (#4599)
  • [jest-runtime] Fix manual user mocks not working with custom resolver (#4489)
  • [jest-util] Fix runOnlyPendingTimers for setTimeout inside setImmediate (#4608)
  • [jest-message-util] Always remove node internals from stacktraces (#4695)
  • [jest-resolve] changes method of determining builtin modules to include missing builtins (#4740)
  • [pretty-format] Prevent error in pretty-format for window in jsdom test env (#4750)
  • [jest-resolve] Preserve module identity for symlinks (#4761)
  • [jest-config] Include error message for preset json (#4766)
  • [pretty-format] Throw PrettyFormatPluginError if a plugin halts with an exception (#4787)
  • [expect] Keep the stack trace unchanged when PrettyFormatPluginError is thrown by pretty-format (#4787)
  • [jest-environment-jsdom] Fix asynchronous test will fail due to timeout issue. (#4669)
  • [jest-cli] Fix --onlyChanged path case sensitivity on Windows platform (#4730)
  • [jest-runtime] Use realpath to match transformers (#5000)
  • [expect] [BREAKING] Replace identity equality with Object.is in toBe matcher (#4917)

Features

  • [jest-message-util] Add codeframe to test assertion failures (#5087)
  • [jest-config] Add Global Setup/Teardown options (#4716)
  • [jest-config] Add testEnvironmentOptions to apply to jsdom options or node context. (#5003)
  • [jest-jasmine2] Update Timeout error message to jest.timeout and display current timeout value (#4990)
  • [jest-runner] Enable experimental detection of leaked contexts (#4895)
  • [jest-cli] Add combined coverage threshold for directories. (#4885)
  • [jest-mock] Add timestamps to mock state. (#4866)
  • [eslint-plugin-jest] Add prefer-to-have-length lint rule. (#4771)
  • [jest-environment-jsdom] [BREAKING] Upgrade to JSDOM@11 (#4770)
  • [jest-environment-*] [BREAKING] Add Async Test Environment APIs, dispose is now teardown (#4506)
  • [jest-cli] Add an option to clear the cache (#4430)
  • [babel-plugin-jest-hoist] Improve error message, that the second argument of jest.mock must be an inline function (#4593)
  • [jest-snapshot] [BREAKING] Concatenate name of test and snapshot (#4460)
  • [jest-cli] [BREAKING] Fail if no tests are found (#3672)
  • [jest-diff] Highlight only last of odd length leading spaces (#4558)
  • [jest-docblock] Add docblock.print() (#4517)
  • [jest-docblock] Add strip (#4571)
  • [jest-docblock] Preserve leading whitespace in docblock comments (#4576)
  • [jest-docblock] remove leading newlines from parswWithComments().comments (#4610)
  • [jest-editor-support] Add Snapshots metadata (#4570)
  • [jest-editor-support] Adds an 'any' to the typedef for updateFileWithJestStatus (#4636)
  • [jest-editor-support] Better monorepo support (#4572)
  • [jest-environment-jsdom] Add simple rAF polyfill in jsdom environment to work with React 16 (#4568)
  • [jest-environment-node] Implement node Timer api (#4622)
  • [jest-jasmine2] Add testPath to reporter callbacks (#4594)
  • [jest-mock] Added support for naming mocked functions with .mockName(value) and .mockGetName() (#4586)
  • [jest-runtime] Add module.loaded, and make module.require not enumerable (#4623)
  • [jest-runtime] Add module.parent (#4614)
  • [jest-runtime] Support sourcemaps in transformers (#3458)
  • [jest-snapshot] [BREAKING] Add a serializer for jest.fn to allow a snapshot of a jest mock (#4668)
  • [jest-worker] Initial version of parallel worker abstraction, say hello! (#4497)
  • [jest-jasmine2] Add testLocationInResults flag to add location information per spec to test results (#4782)
  • [jest-environment-jsdom] Update JSOM to 11.4, which includes built-in support for requestAnimationFrame (#4919)
  • [jest-cli] Hide watch usage output when running on non-interactive environments (#4958)
  • [jest-snapshot] Promises support for toThrowErrorMatchingSnapshot (#4946)
  • [jest-cli] Explain which snapshots are obsolete (#5005)

Chore & Maintenance

  • [docs] Add guide of using with puppeteer (#5093)
  • [jest-util] jest-util should not depend on jest-mock (#4992)
  • [*] [BREAKING] Drop support for Node.js version 4 (#4769)
  • [docs] Wrap code comments at 80 characters (#4781)
  • [eslint-plugin-jest] Removed from the Jest core repo, and moved to https://github.com/jest-community/eslint-plugin-jest (#4867)
  • [babel-jest] Explicitly bump istanbul to newer versions (#4616)
  • [expect] Upgrade mocha and rollup for browser testing (#4642)
  • [docs] Add info about coveragePathIgnorePatterns (#4602)
  • [docs] Add Vuejs series of testing with Jest (#4648)
  • [docs] Mention about optional done argument in test function (#4556)
  • [jest-cli] Bump node-notifier version (#4609)
  • [jest-diff] Simplify highlight for leading and trailing spaces (#4553)
  • [jest-get-type] Add support for date (#4621)
  • [jest-matcher-utils] Call chalk.inverse for trailing spaces (#4578)
  • [jest-runtime] Add .advanceTimersByTime; keep .runTimersToTime() as an alias.
  • [docs] Include missing dependency in TestEnvironment sample code
  • [docs] Add clarification for hook execution order
  • [docs] Update expect.anything() sample code (#5007)

Readme

Source

jest-validate

Generic configuration validation tool that helps you with warnings, errors and deprecation messages as well as showing users examples of correct configuration.

npm install --save jest-validate

Usage

import {validate} from 'jest-validate';

validate((config: Object), (options: ValidationOptions)); // => {hasDeprecationWarnings: boolean, isValid: boolean}

Where ValidationOptions are:

type ValidationOptions = {
  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,
  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

  • 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.
  • 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:

validate(config, {exampleConfig});

Example with slight modifications:

validate(config, {
  comment: '  Documentation: http://custom-docs.com',
  deprecatedConfig,
  exampleConfig,
  title: {
    deprecation: 'Custom Deprecation',
    // leaving 'error' and 'warning' as default
  },
});

This will output:

Warning:
ā— 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:
ā— 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:

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

FAQs

Last updated on 18 Dec 2017

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with āš”ļø by Socket Inc