Helium MVNEdocs

Testing in sandbox

The sandbox runs the real platform wired to simulated backends for every third party — carrier, tax, payments. A dedicated Sandbox DX surface is available in the operator dashboard for driving state transitions that would otherwise require a real carrier: force-completing activations, seeding port scenarios, advancing the clock, and so on.

These controls live in the dashboard, not on the public API. They're scoped to the dashboard's currently-selected environment and only work when that environment is sandbox — there is no programmatic test-mode surface for integration code, by design.

Driving state transitions

In the dashboard, open Sandbox → Triggers while your sandbox environment is selected. Pick a resource (SIM, port, subscription, carrier connection) and the trigger you want:

  • sim.force_activation_success — fast-forward a SIM from pending_activationactive and fire sim.activated.
  • sim.force_activation_failure — force activation_failed and fire sim.activation_failed.
  • port.force_validation_failed — synthesize a port-in validation failure with a reason of your choice.
  • port.force_completion — complete a port and activate the SIM.

The full trigger catalog is listed in the trigger panel and documented inline per resource. Triggers are rejected outright in live environments — they exist only for sandbox.

Clock control

The sandbox clock runs at wall-clock time by default. Pin or advance it from Sandbox → Time travel in the dashboard:

  • Advance by — jump the sandbox clock forward by N seconds / minutes / hours / days.
  • Reset — restore the environment to wall-clock time.

Advancing the clock fires scheduled jobs immediately — a 30-day subscription renewal happens the moment you advance past the renewal mark.

The clock offset is per-environment, so advancing sandbox never affects live (live always reads wall-clock) and operators don't interfere with each other.

Scenario seeds

Bootstrap a full scenario (operator + subscriber + SIM + active subscription, or mid-port happy path, etc.) in one click from Sandbox → Seed scenarios in the dashboard. The available scenarios are listed in the panel alongside a short description of what each one creates.