Socket
Socket
Sign inDemoInstall

jest-circus

Package Overview
Dependencies
20
Maintainers
6
Versions
247
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

jest-circus

[type-definitions]: https://github.com/jestjs/jest/blob/main/packages/jest-types/src/Circus.ts


Version published
Weekly downloads
16M
decreased by-16.25%
Maintainers
6
Created
Weekly downloads
 

Package description

What is jest-circus?

The jest-circus package is a test runner for Jest that aims to be a foundation for building testing frameworks. It provides a feature-rich API for defining tests, handling test execution, and setting up and tearing down test environments. It's designed to be more extensible and maintainable than Jest's default test runner.

What are jest-circus's main functionalities?

Defining Tests

This feature allows you to define individual test cases using the `test` function. The code sample demonstrates a simple test that checks if the addition of 1 and 2 equals 3.

test('adds 1 + 2 to equal 3', () => {
  expect(1 + 2).toBe(3);
});

Setup and Teardown

Jest-circus provides lifecycle methods like `beforeEach` and `afterEach` for setting up and tearing down your test environment before and after each test, respectively.

beforeEach(() => {
  initializeCityDatabase();
});

afterEach(() => {
  clearCityDatabase();
});

Test Suites

Organize tests into test suites using the `describe` block. This allows grouping of related tests, making tests easier to manage and understand.

describe('matching cities to foods', () => {
  test('Vienna <3 sausage', () => {
    expect(matchCityToFood('Vienna')).toBe('sausage');
  });
});

Asynchronous Testing

Support for testing asynchronous code using async/await syntax or promises, allowing for straightforward testing of asynchronous operations.

test('the data is peanut butter', async () => {
  await expect(fetchData()).resolves.toBe('peanut butter');
});

Other packages similar to jest-circus

Readme

Source

jest-circus

The next-gen test runner for Jest

Overview

Circus is a flux-based test runner for Jest that is fast, maintainable, and simple to extend.

Circus allows you to bind to events via an optional event handler on any custom environment. See the type definitions for more information on the events and state data currently available.

import {Event, State} from 'jest-circus';
import {TestEnvironment as NodeEnvironment} from 'jest-environment-node';

class MyCustomEnvironment extends NodeEnvironment {
  //...

  async handleTestEvent(event: Event, state: State) {
    if (event.name === 'test_start') {
      // ...
    }
  }
}

Mutating event or state data is currently unsupported and may cause unexpected behavior or break in a future release without warning. New events, event data, and/or state data will not be considered a breaking change and may be added in any minor release.

Note, that jest-circus test runner would pause until a promise returned from handleTestEvent gets fulfilled. However, there are a few events that do not conform to this rule, namely: start_describe_definition, finish_describe_definition, add_hook, add_test or error (for the up-to-date list you can look at SyncEvent type in the types definitions). That is caused by backward compatibility reasons and process.on('unhandledRejection', callback) signature, but that usually should not be a problem for most of the use cases.

Installation

Note: As of Jest 27, jest-circus is the default test runner, so you do not have to install it to use it.

Install jest-circus using yarn:

yarn add --dev jest-circus

Or via npm:

npm install --save-dev jest-circus

Configure

Configure Jest to use jest-circus via the testRunner option:

{
  "testRunner": "jest-circus/runner"
}

Or via CLI:

jest --testRunner='jest-circus/runner'

FAQs

Package last updated on 20 Feb 2024

Did you know?

Socket

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc