authelia/docs/build.md

70 lines
1.6 KiB
Markdown

# Build
**Authelia** is written in Typescript and built with Grunt.
In order to build **Authelia**, you need to make sure Node v8 and NPM is
installed on your machine.
Then, run the following command install the node modules:
npm install
And, this command to build **Authelia** under dist/:
./node_modules/.bin/grunt build
## Details
### Build
**Authelia** is made of two components: the client and the server.
The client is written in Typescript and uses jQuery. It is built as part of
the global `build` Grunt command.
The server is written in Typescript. It is built as part of the global `build`
Grunt command.
### Tests
Grunt also handles the commands to run the tests. There are several type of
tests for **Authelia**: unit tests for the server, unit tests for the client
and integration tests for both.
The unit tests are written with Mocha while integration tests are using
Cucumber and Mocha.
### Unit tests
To run the client unit tests, run:
./node_modules/.bin/grunt test-client
To run the server unit tests, run:
./node_modules/.bin/grunt test-server
### Integration tests
Integration tests are mainly based on Selenium so they
need a complete environment to be set up.
Start by making sure **Authelia** is built with:
grunt build
and the docker image is built with:
./scripts/example-commit/dc-example.sh build
Then, start the environment with:
./scripts/example-commit/dc-example.sh up -d
And run the tests with:
./node_modules/.bin/grunt test-int
Note: the Cucumber tests are hard to maintain and will therefore
be refactored to use Mocha instead.