State management – Prepare environment (to do it properly)

To start project we will need to create node project. I assume that you have installed Node.js on your machine. If not you can do it easy with installator on

Now lets create a project. I assume that you are familiar with command line. Open command line and go to your directory in which you will create your project.

In your project directory please run command:

npm init -y

This command will initialise node.js project in your directory. Flag -y will omit prompt questions (this will help you to save few seconds).

To start project lets use Jest engine. (To get deeper knowledge of JEST In command line please run:

npm i jest

Now open your package.json file. Please change scripts section to "test": "jest". After saving your changes file should be simillar to this one:

  "name": "fedojo_com__state_management",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "jest"
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "jest": "^24.9.0"

Now in command line when you will run command below:

npm run test

Jest will automatically run test in your project.

Project structure

Now lets create a project structure. In root folder please write:

mkdir src
cd src
touch state.js
mkdir _test_
cd _test_
touch state.test.js

This commands will create folder src then open it and create state.js file. After that we are creating _test_ foleder open it and create state.test.js file. Now open your favourite IDE and open state.test.js file. Inside this file lets write:

test("First test", () => {

Now in command line lets run:

npm run test

In your command line you should see:

PASS  src/_test_/state.test.js
  ✓ First test (3ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        1.399s
Ran all test suites.

What we have done is simple check if true is equal true just to make sure that JEST is working fine.


Published by Piotr Sikora

Piotr Sikora is Front End Team Manager @ Sourceful. MeetJS Kielce Committee member. JavaScript enthusiast. With passion to MTB (

Leave a comment

Your email address will not be published. Required fields are marked *