---
id: TST-PFM-DJE-156
title: Apply emergency throttles
kind: unit
product_area: platform
module: data-job-engine
revision: 1
status: draft
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  macroservice-libraries: 54536a441935c6e09fdb7f96f0bec71c52ba4e03
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
repository: services-platform
files:
  - modules/capacity/tests/unit/services/capacity/apply-emergency-throttles.spec.ts
implements:
  - ATS-PFM-DJE-019-07
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 1
isolation: In-memory fixtures and restored dependency doubles.
evidence:
  - >-
    services-platform:modules/capacity/tests/unit/services/capacity/apply-emergency-throttles.spec.ts
assertion_inventory:
  - capacity emergency stage throttles
  - the flag
  - is off when the variable is unset
  - is off for anything but on
  - is on when the variable says on
  - with the flag off
  - makes no call to API Gateway
  - says what it would have applied
  - applying the emergency values with the flag on
  - patches the stage-wide method settings with the emergency rate and burst
  - answers applied for the stage it changed
  - writes nothing to a stage that already carries the emergency values
  - writes the values to a stage that sets no stage-wide throttle at all
  - restoring the normal values with the flag on
  - patches the stage back to its normal rate and burst
  - one stage failing
  - reports the failed stage with its error
  - still changes the other stage
  - a published module API parameter
  - is read under the path the library publishes at
  - 'parses into a target with its own values, its service and module from the name'
  - is refused when it is not JSON
  - is refused when it names no API
  - is refused when its emergency values are missing
  - is refused when a limit is not a number
  - is refused when its name is not that of a module API
  - the targets of a page of parameters
  - 'are the stage-throttle parameters, in module order'
  - 'skip a malformed parameter and a second one for the same stage, each with its reason'
  - are the discovered targets when any is published
  - fall back to the list of the environment when none is published
  - ask for every parameter under the path of the module APIs
registration_note: Registration describes existing source; the suite is not executed by this documentation job.
---

# Apply emergency throttles

## Verification Boundary

The suite checks an isolated production calculation, declaration or adapter. The structured assertion inventory records the checks present at the pinned revision.

## What This Suite Proves

The existing checks exercise apply emergency throttles. The specification bindings identify the narrower outcomes supported by those assertions.

## What It Does Not Prove

An isolated check does not establish a deployed workflow, database enforcement or complete feature acceptance.

## Real Dependencies and Test Doubles

The production function or declaration is exercised with in-memory inputs and dependency doubles. This boundary does not require a live database.

## Must Not Be Doubled

The production function under examination and its returned decisions remain real; replacing their answers defeats the check.
