@knapsack-pro/jest
![CircleCI](https://circleci.com/gh/KnapsackPro/knapsack-pro-jest.svg?style=svg)
@knapsack-pro/jest
runs your tests with Jest test runner and does dynamic tests allocation across parallel CI nodes using KnapsackPro.com Queue Mode to provide the fastest CI build time (optimal test suite timing).
Learn about Knapsack Pro Queue Mode in the video how to run tests with dynamic test suite split and learn what CI problems can be solved thanks to it.
Table of Contents
Installation
See the docs to get started.
FAQ
Development
Requirements
You can use NVM to manage Node version in development.
Dependencies
Setup
- Setup @knapsack-pro/core project.
Follow below steps or use bin/setup_development
script to take care of steps 2-5.
-
Install dependencies:
$ npm install
-
In order to use local version of @knapsack-pro/core
run:
$ npm link @knapsack-pro/core
-
Compile TypeScript code to lib
directory by running:
$ npm start
-
Register @knapsack-pro/jest
package globally in your local system. This way we will be able to develop other npm packages dependent on it:
$ npm link
-
Set up your IDE:
-
Visual Studio Code
-
Install the following plugins:
-
Go to File > Preferences > Settings > Text Editor > Formatting
Turn on Format On Save
checkbox.
From now on, every change in code base will be automatically formatted by Prettier. ESLint shows errors and warnings in VSCode.
-
Write some code.
Publishing
-
Sign in to npm registry with command:
$ npm adduser
-
Ensure you have the latest version of @knapsack-pro/core
in package.json
:
{
"dependencies": {
"@knapsack-pro/core": "^x.x.x"
}
}
Then run npm install
. This way you will be able to test @knapsack-pro/core
installed from npm registry instead of local one that was linked with npm link @knapsack-pro/core
.
Now commit updated package.json
and package-lock.json
.
$ git commit -am "Update @knapsack-pro/core"
-
Before releasing a new version of package please update CHANGELOG.md
with github_changelog_generator:
$ gem install github_changelog_generator
# generate CHANGELOG.md
$ github_changelog_generator --user KnapsackPro --project knapsack-pro-jest
$ git commit -am "Update CHANGELOG.md"
$ git push origin master
-
If you have added new files to the repository and they should be part of the released npm package then please ensure they are included in files
array in package.json
.
-
If you have changed any headers in README.md
please refresh table of contents with:
$ npm run doctoc
-
Compile project:
# ensure you use local version of @knapsack-pro/core
$ npm link @knapsack-pro/core
$ npm run build
-
In order to bump version of the package run below command. It will also create a version commit and tag for the release:
# bump patch version 0.0.x
$ npm version patch
# bump minor version 0.x.0
$ npm version minor
-
Push to git repository created commit and tag:
$ git push origin master --tags
-
Now when git tag is on Github you can update CHANGELOG.md
again.
$ github_changelog_generator --user KnapsackPro --project knapsack-pro-jest
$ git commit -am "Update CHANGELOG.md"
$ git push origin master
-
Now you can publish package to npm registry:
$ npm publish
-
Update the latest available library version in TestSuiteClientVersionChecker
for the Knapsack Pro API repository.
Testing
CI
If your feature requires code change in @knapsack-pro/core then please push the @knapsack-pro/core
to GitHub first. Then you can push changes for @knapsack-pro/jest
to ensure the CI will use the latest @knapsack-pro/core
.
Example Jest test suite
To test @knapsack-pro/jest
against real test suite we use: