README
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)