docs
evals
scenario-1
scenario-10
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
Build a test runner controller that manages test execution timing and provides control over when tests start. The controller should work with asynchronous test loading scenarios and provide both automatic and manual start modes.
Create a test runner controller that:
The controller accepts a configuration object:
{
autostart: boolean, // If true, tests start automatically; if false, manual start required
delay: number // Milliseconds to wait before starting (applies after initialization)
}Default values: autostart: true, delay: 0
When autostart is true: Tests begin automatically after the configured delay
When autostart is false: Tests wait indefinitely until start() is called manually
The delay period begins counting after the controller is initialized.
The controller maintains a running state that can be queried to determine if tests have started.
/**
* Creates a test runner controller
* @param {Object} config - Configuration object
* @param {boolean} [config.autostart=true] - Whether to start tests automatically
* @param {number} [config.delay=0] - Delay in milliseconds before starting
* @returns {Object} Controller instance
*/
function createController(config);
/**
* Manually starts the test runner
* Should only be called when autostart is false
*/
controller.start();
/**
* Returns whether tests are currently running
* @returns {boolean} True if tests have started
*/
controller.isRunning();
/**
* Returns a promise that resolves when tests start
* @returns {Promise<void>} Resolves when test execution begins
*/
controller.onStart();Provides test framework integration with configuration options for controlling test execution timing and manual start capabilities.