Commands

Developing

Set NODE_ENV=development in your .env file.

npm run start [-- --open]

Builds and serves your application with hot reloading and debugging support.

Production build

npm run build

Creates bundles and assets into the /src/static directory. Reads .env but uses production Webpack configuration.

Start the server

Set NODE_ENV=production in your .env file.

npm start

Expects bundles and assets to exist in the /src/static directory. Runs the server in production mode.

Or, use true environmental variables in your environment. Do not track the .env in source control.

Unit test development server

npm run test:server

Start a test server using Mocha and Webpack-middleware. Provides a browser based testing environment. Load files within ./src with an extension of .test.js. If you want, change the .test.js extension from within the ./src/config/webpack.unit-test.browser.config.js file.

entry: {
  main: [
    // change the glob here
    ...glob.sync('./src/**/*.test.js').map(file =>
      `mocha!${path.join(ROOT, file)}`
    ),
  ]
}

Unit test single run

npm run test:unit

Runs the test suite in a node environment through mocha, once. This command uses mocha which includes a --watch feature to watch for test changes. This command watches files matching src/**/*.test.js -- change this glob in /scripts/test/unit.sh.

Functional/integration tests run

npm run test:func

The purpose of the functional (integration) tests is to sit between unit tests and acceptance (browser) tests. They're for testing groups of units, and how they communicate. These tests have a loose-coupling to code implementation.

For example, create specific tests for connections to IO. For example, if it's desired to test wiring between a DB or an external API. But, Breko-hub doesn't use either of these.

Run the functional and unit tests

npm run test

Linting

npm run lint
npm run lint:styles

No semi-colons and commas on multi-lines for easy duplication. Single-quotes and ticks instead of double-quotes. The eslint rule "no-unexpected-multiline" protects against any "no comma" issues.

The linting setup for SCSS uses defaults for the majority of rules. CSS modules makes the other rules irrelevant.

Coverage

npm run coverage

This generates a report based on the istanbul.yml configuration.

npm run coverage:check

Use this command when you want to error based on configured thresholds.

results matching ""

    No results matching ""