moodlehq / bigbluebutton_mock

0 stars 11 forks source link

BigBlueButton Mock API Server

This project and associated docker containers provide a mock of the main BigBlueButton server and can be used for testing of BigBlueButton integrations.

Quick setup using Docker

Run the following command to get your mock server up and running:

   docker run -p 8001:80 moodlehq/bigbluebutton_mock

Example usage

Automated tests

You need to define TEST_MOD_BIGBLUEBUTTONBN_MOCK_SERVER in your config.php when running automated tests like PHPUnit and Behat. Otherwise, most of the BigBlueButton tests will be marked skipped.

For example, add the following to your config.php after the $CFG->wwwroot line:

   define('TEST_MOD_BIGBLUEBUTTONBN_MOCK_SERVER', "http://localhost:8001/hash" . sha1($CFG->wwwroot));

Moodle Docker

The Moodle Docker testing environment contains in-built support for running and configuring the mock server (since #241).

In order to do so, simply export the MOODLE_DOCKER_BBB_MOCK environment variable prior to starting the containers.

More information

All endpoints must be prefixed with a serverID to allow for parallel runs, for example:

http://localhost:8001/someServerID/api

In addition to the standard endpoints, additional endpoints are provided for setting up data which a test requires or expects:

/backoffice/createMeeting
/backoffice/createRecording

In addition, the following endpoint can be used to trigger a reset between tests:

/backoffice/reset

And the following endpoints exist to view the current meetings and recordings:

/backoffice/meetings
/backoffice/recordings

Local development

Check requirements:

cd application
symfony check:requirements

Set up the db:

php bin/console doctrine:database:drop --force
php bin/console doctrine:schema:create

Run the project:

symfony server:start --port=8001 --no-tls --allow-http

Debugging:

XDEBUG_SESSION=1 symfony server:start --port=8001 --no-tls --allow-http

Notes:

Publishing status

Note : if you want to publish on your own repository (being Docker Hub or Git Container Registry), you need to define the following secrets following secrets :

Docker multiarch publish