authelia/test/suites
2019-03-03 11:39:41 +01:00
..
basic Remove description of suites and use suite name instead. 2019-03-03 11:39:41 +01:00
dockerhub Remove description of suites and use suite name instead. 2019-03-03 11:39:41 +01:00
high-availability Remove description of suites and use suite name instead. 2019-03-03 11:39:41 +01:00
short-timeouts Remove description of suites and use suite name instead. 2019-03-03 11:39:41 +01:00
.gitignore Move users_database.yml files to dedicated suites. 2019-03-03 11:39:41 +01:00
README.md Rename some suites and add a README for each of them. 2019-03-03 11:39:41 +01:00

Authelia Suites

Authelia is a single component in interaction with many others. Consequently, testing the features is not as easy as we might think. Consequently, a suite is kind of a virtual environment for Authelia, it allows to create an environment made of components such as nginx, redis or mongo in which Authelia can run and be tested.

This abstraction allows to prepare an environment for manual testing during development and also to craft and run integration tests.

Start a suite.

Starting a suite called simple is done with the following command:

npm run scripts suites start simple

It will start the suite and block until you hit ctrl-c to stop the suite.

Run tests of a suite

Run tests of running suite

If you are already running a suite with the previous command, you can simply type:

npm run scripts test

and this will run the tests related to the running suite.

Run tests of non-running suite

However, if no suite is running and you still want to test a particular suite like complete. You can do so with the next command:

npm run scripts test complete

This command will run the tests for the complete suite using the built version of Authelia that should be located in dist.

WARNING: Authelia must be built before running this command.

Run all tests of all suites

Running all tests is as easy as making sure that there is no running suite and typing:

npm run scripts test

Create a suite

Creating a suite is as easy as creating a new directory with at least two files:

  • environment.ts - It defines the setup and teardown phases when creating the environment. The setup phase is the phase when the required components will be spawned and Authelia will start while the teardown is executed when the suite is destroyed (ctrl-c hit by the user).
  • test.ts - It defines a set of tests to run in the virtual environment of the suite.