@kamiazya/jest-dynamic
v0.1.0
Published
An extension to dynamically switch the Jest test suite according to the environment (such as platform).
Downloads
172
Readme
@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:
# 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.