perdoo-ui
Prerequisites
Node.js >= v8 must be installed.
Installation
- After cloning the repo, run
yarn
in the root directory to install all dependencies.
Demo Development Server
yarn start
will run a development server with the storybook app at http://localhost:3000 with hot module reloading.
Running Tests
-
There are two kinds of tests, lint tests & unit tests
-
yarn lint
will run the linter and report and errors it finds. -
yarn test
will run the unit tests and report any failures it finds.
Writing tests
-
Every test suite is split into two categories, one for testing output layout (Snapshot tests), and one for testing the functionalities.
-
Make sure any new suites are split into the two categories
-
When you expect a snapshot to update because of a change in the source code, make sure you update the snapshots by running
yarn test -u
before pushing. Run this only if your component layout or styles have changed. If your snapshot test is failing without a layout or style change, it indicates an error in either the component, or the test itself. Do not run the command with the-u
flag unless absolutely sure.
Releasing
- Branch out of
develop
. The branch name should berelease/X.X.X
, where X.X.X is the version. - Bump up
package.json
version. - Add the version's changelog in
CHANGELOG.md
. Be sure to update the version and date if you copy a previous version's changelog. Also make sure to correctly separate outBugfixes
andImprovements
. - Run
npm publish
(NOTyarn publish
). This will run tests and publish. Enter 2FA code, if you've enabled it for your account. - Merge the release branch back to
develop
. Tag this merge commit asvX.X.X
and push the tag. Make sure the tag begins with the littlev
. - Delete the release branch.
- Go to GitHub's releases, edit the latest release and copy over the changelog (for A E S T H E T I C S)
- At the end of all this, the repo should only have 2 branches,
master
, anddevelop
. - Merge
develop
tomaster
by raising a pull request
Scripts
build
: Runs tests, generates the test results, and builds the storybook app for deployment on Herokubuild-demo
: Builds the storybook into abuild
foldercompile
: Runs tests, and bundles the components for publishing to npmdevelop
: Startsbabel
in watch mode, useful when using yarn workspaces for coupled development withperdoo-web-app
lint
: Starts the linter on the codebaseprepublishOnly
: Runs before an npm publishstart
: Starts a storybook app in development mode (with hot reloading)test
: Runs unit tests (Jest + Enzyme)