https://github.com/eddyerburgh/conditional-specs
Conditional spec methods for test suites that run in multiple environments
https://github.com/eddyerburgh/conditional-specs
Last synced: about 1 year ago
JSON representation
Conditional spec methods for test suites that run in multiple environments
- Host: GitHub
- URL: https://github.com/eddyerburgh/conditional-specs
- Owner: eddyerburgh
- License: mit
- Created: 2018-05-11T22:41:08.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2022-12-09T08:37:59.000Z (over 3 years ago)
- Last Synced: 2025-03-27T15:47:33.407Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 249 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# conditional-specs
Conditional spec methods for test suites that run in multiple environments.
Can be used with [Mocha](https://mochajs.org/) or [Jest](https://facebook.github.io/jest/).
## Example
```js
import {
itDoNotRunIf,
describeRunIf
} from 'conditional-specs'
describe('#find()', () => {
itDoNotRunIf(BROWSER === 'phantomJS', 'returns node matching :not selector', () => {
// ..
});
it('returns node matching class selector', () => {
// ..
})
})
describeRunIf(TEST_ENV === "node", "#findAll()", () => {
// ..
});
```
## Usage
Install with yarn:
```
yarn add --dev mocha-conditionals
```
or npm:
```
npm install --save-dev mocha-conditionals
```
Use in test files:
```js
import {
itDoNotSkipIf,
describeRunIf
} from 'conditional-specs'
describeRunIf(process.env.TEST_ENV === 'browser', '#find()', () => {
// ..
})
```
You can add `skip` and `only` to tests:
```js
describeRunIf.only(process.env.TEST_ENV === 'browser', '#find()', () => {
// ..
})
describeSkipIf.skip(process.env.TEST_ENV === 'browser', '#find()', () => {
// ..
})
```
## API
`itDoNotRunIf(condition, name, fn)`
`itRunIf(condition, name, fn)`
`itDoNotSkipIf(condition, name, fn)`
`itSkipIf(condition, name, fn)`
`describeDoNotRunIf(condition, name, fn)`
`describeRunIf(condition, name, fn)`
`describeDoNotSkipIf(condition, name, fn)`
`describeSkipIf(condition, name, fn)`
## Why?
Some libraries are designed to run in multiple environments. If behavior changes across those environments, tests need to be conditional.
`conditional-specs` provides methods to write easy-to-read conditional tests.