46 lines
1.6 KiB
Markdown
46 lines
1.6 KiB
Markdown
# 🔧 Local setup for development (~20 min)
|
||
|
||
## 0️ Prepare your machine
|
||
|
||
A machine with a recent version of [NodeJS](https://nodejs.org) is required (see used version in [Dockerfile](/Dockerfile#L1-L2)).
|
||
|
||
## 1️ Clone repository and install dependencies
|
||
|
||
Run the following command to clone this repository and install dependencies.
|
||
|
||
```shell
|
||
git clone https://github.com/lowlighter/metrics.git
|
||
cd metrics/
|
||
npm install
|
||
cp settings.example.json settings.json
|
||
```
|
||
|
||
## 2️ Setup and configure *metrics*
|
||
|
||
Follow [🏗️ Deploying a web instance (~20 min)](/.github/readme/partials/documentation/setup/web.md) guide except docker-related sections.
|
||
|
||
Once read, start local instance using the following command:
|
||
```shell
|
||
npm start
|
||
```
|
||
|
||
## 3️ Start hacking!
|
||
|
||
Connect to your web server using `http://localhost:{port}` and start hacking!
|
||
|
||
For quick testing, it is advised to directly craft URLs, rather than using the web interface.
|
||
|
||
*Example: test a new plugin*
|
||
```shell
|
||
https://localhost:{port}/username?base=0&newplugin=1&newplugin.option1=hello&newplugin.option2=world)
|
||
```
|
||
|
||
## *️⃣ Testing changes
|
||
|
||
Testing is done through [jest](https://github.com/facebook/jest) framework.
|
||
|
||
To avoid consuming APIs requests and causing additional charges on external services, data are [mocked](/tests/mocks/index.mjs) using [JavaScript Proxies](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) and [Faker.js](https://github.com/faker-js/faker) with randomly generated data.
|
||
|
||
Since tests are pretty long to run, it is advised to just let GitHub Actions do the testing.
|
||
|