Package Exports
- jest-plugin-context
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (jest-plugin-context) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
jest-plugin-context
Adds context as an alternative to describe for jest.
Getting Started
Install jest-plugin-context using yarn:
yarn add --dev jest-plugin-contextMotivation
RSpec took the ruby world by storm with its declarative method of TDD. In RSpec, describe it used to wrap a set of tests against one functionality while context is to wrap a set of tests against one functionality under the same state.
The difference being you should only describe to test the User model and specifically describe the #name method. However, testing different states of the #name method should use different context. You can view an example of this below.
Usage
If you want, you can import context from jest-plugin-context at the top of every test:
import context from 'jest-plugin-context';If you want to install context as a global, you can modify the jest section of your package.json to include:
"jest": {
"setupFiles": [
"jest-plugin-context/setup"
]
}Example
Here's an example test that uses context:
describe('User', () => {
describe('#name', () => {
set('firstName', () => 'Harry');
set('lastName', () => 'Potter');
set('user', () => new User({firstName, lastName}));
context('with blank first name', () => {
set('firstName', () => null);
it('should return only the last name', () => {
expect(user.name).toEqual('Potter');
});
});
context('with blank last name', () => {
set('lastName', () => null);
it('should return only the first name', () => {
expect(user.name).toEqual('Harry');
});
});
});
});