Skip to main content

Function: enableAlarmSimulation()

enableAlarmSimulation(doInstance, config): void

Defined in: packages/testing/src/alarm-simulation.ts:88

Enable alarm simulation for a Durable Object instance.

This function transparently mocks ctx.storage.setAlarm/getAlarm/deleteAlarm to enable automatic alarm firing in tests.

How it works:

  1. Saves original alarm methods
  2. Replaces them with simulation versions
  3. Uses setTimeout to trigger alarm() at scheduled time
  4. Handles retries with exponential backoff (100x faster)
  5. Matches Cloudflare behavior: new setAlarm overwrites pending alarm

Called by: instrumentDOProject during DO class wrapping

Parameters

doInstance

any

The Durable Object instance to instrument

config

AlarmSimulationConfig = {}

Optional configuration for simulation behavior

Returns

void

Example

const doInstance = new MyDO(ctx, env);
enableAlarmSimulation(doInstance);

// Now alarms fire automatically!
doInstance.ctx.storage.setAlarm(Date.now() + 1000);
// ... alarm() will be called after ~10ms (100x faster)