authelia/docs/build.md
2018-12-18 16:34:56 +01:00

1.7 KiB

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 also 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, the client and a shared library and an integration test suite testing both components together.

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

To run the shared library unit tests, run:

./node_modules/.bin/grunt test-shared

Integration tests

Integration tests are mainly based on Selenium so they need a complete environment to be run.

You can 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.