# 📦🚀 ng-labs

[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
![Release](https://github.com/danielddb/ng-labs/workflows/Release/badge.svg)
[![Heroku](https://heroku-badge.herokuapp.com/?app=ng-labs&style=flat&svg=1&root=index.html)](https://ng-labs.herokuapp.com)
[![NPM Version](https://img.shields.io/npm/v/ng-labs/latest.svg)](https://www.npmjs.com/package/ng-labs)

## Prerequisites

1. Install [Docker](https://docs.docker.com/get-docker/) and make sure it's running.

## Getting started

1. Clone the repo.
2. Run `npm i`.

## Developing

- Run `npm run dev` to build and watch for changes to the Angular and theme code to the `dist/components` directory.
- In another terminal, run `npm run dev:storybook` to start [Storybook](https://storybook.js.org) and watch for changes to the built component code.

## Run Live Server Locally

Run `npm run live` to run the exact server and build setup that's used on the live server.

## Testing

### Unit Tests

Run `npm test` or `npm run test:watch`. Test coverage output is found in the `coverage` directory.

### Visual Regression Tests

Run `npm run e2e` to start cypress and a production instance of the app.

At the moment this is used to take snapshots of our components so they can be checked for visual regressions.

## Committing code

Run `npm run commit`. You'll be prompted to fill out any required commit fields by [Commitizen](https://github.com/commitizen/cz-cli) using [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).

## Releasing

Releasing is fully automated with [Semantic Release](https://github.com/semantic-release/semantic-release).
