@kamiazya/jest-dynamic
TypeScript icon, indicating that this package has built-in type declarations

0.1.0 • Public • Published

GitHub Action License: MIT code style: prettier Test Coverage

@kamiazya/jest-dynamic

An extension to dynamically switch the Jest test suite according to the environment (such as platform).

Objectives

When writing a platform-dependent test like this issue, it provides an option to flexibly change the test configuration.

Installation

This jest plugin can then be installed using npm:

NPM

# yarn
yarn add -D @kamiazya/jest-dynamic
# or npm
npm install --save-dev @kamiazya/jest-dynamic

API

Importing

import { onlyIf, onlyOn, skipIf, skipOn } from '@kamiazya/jest-dynamic';

Skip

skipOn(...platforms: NodeJS.Platform)

Using skipOn will skip the test on the specified platform.

Example

skipOn('darwin')
  .describe('Tests not run on Mac', () => {
    it('is sample test', () => {
      expect(true).toBe(true);
    });
  });

skipIf(condition: boolean | (() => boolean))

Using skipIf will skip the test on condition.

Example

skipIf(process.env.NODE_ENV === 'CI')
  .describe('This run on local test', () => {
      expect(true).toBe(true);
  });

Only

onlyOn(...platforms: NodeJS.Platform)

Use onlyOn to run one test of the block targeted for the specified platform.

Example

onlyOn('darwin', 'linux')
  .describe('Run on Mac or Linux', () => {
    test('sample', () => {
      expect(true).toBe(true);
    });
  });

onlyOn('win32')
  .describe('Run on Windows', () => {
    test('sample', () => {
      expect(false).toBe(false);
    });
  });

onlyIf(condition: boolean | (() => boolean))

Use onlyIf to run one test of the block targeted on condition.

Example

describe('Tests', () => {
  onlyIf(process.platform === 'win32')
    .it('should be run on Windows', () => {
      expect(false).toBe(false);
    });

  onlyIf(() => process.platform === 'linux')
    .test('Run on Linux', () => {
      expect(1).toBe(1);
    });
});

Advanced Usage

Example

Conditions can also be set on variables to increase reusability.

const onlyOnLinuxAndMac = onlyOn('linux', 'darwin');
const skipOnLinux = skipOn('linux');
const skipOnMac = skipOn('darwin');

onlyOnLinuxAndMac
  .describe('Tests', () => {
    skipOnLinux
      .test('sample', () => {
        expect(false).toBe(false);
      });

    skipOnMac
      .test('sample', () => {
        expect(false).toBe(false);
      });
  });

License

This software is released under the MIT License, see LICENSE.

Author

kamiazya(Yuki Yamazaki)

ko-fi

Package Sidebar

Install

npm i @kamiazya/jest-dynamic

Weekly Downloads

37

Version

0.1.0

License

MIT

Unpacked Size

8.53 kB

Total Files

12

Last publish

Collaborators

  • kamiazya