Equipment Test Results
Perform-only equipment test execution with compatibility aliases and derived outcomes.
EquipmentTest Results API
An equipment_test result records one execution of an equipment_test against an asset. A single PerformEquipmentTest action captures every task answer as a snapshot that survives later edits to the definition, derives the overall outcome, and accepts attachments. The write path is perform-only — there is no in-place update; a follow-up execution creates a new result row.
Responses are compatibility aliases: results expose task_list_results, a passed boolean, an inspection_at timestamp, created_by, and description (an alias of notes). These aliases are also accepted as Ransack filter keys.
Endpoints
| Method | URL | Description |
|---|---|---|
| GET | /api/v1/equipment_test_results |
List equipment_test results |
| POST | /api/v1/equipment_test_results |
Perform an equipment_test (record a result) |
| GET | /api/v1/equipment_test_results/{equipment_test_result} |
Show a result |
| DELETE | /api/v1/equipment_test_results/{equipment_test_result} |
Delete a result (hard delete, 204) |
There is no PUT/PATCH — equipment_test results are immutable once recorded.
Authentication
Requires equipment_test-results:read (GET) or equipment_test-results:write (POST/DELETE) with equipment_test-results.view, equipment_test-results.create, and equipment_test-results.delete permissions. Access is warehouse-scoped through EquipmentTestResultPolicy. Note that execution uses its own abilities, distinct from the equipment_tests:* abilities that govern definitions.
Perform an equipment_test
POST /api/v1/equipment_test_results
Supply the equipment_test, the asset, and a per-task answer payload. Outcome derivation:
| Scenario | Result outcome |
|---|---|
| All required tasks answered and pass | pass (optional failures ignored) |
| Any required task fails | fail |
| A required task is unanswered | incomplete |
| A measurement is outside its min/max bounds | Task fails; result fails if the task is required |
A failing result on a definition flagged for auto-repair raises a repair through the shared raise path; a certifying equipment_test's earliest passing expiry feeds the asset's certification-expiry rollup. Boolean-false answers are recorded and evaluated correctly (not treated as unanswered).
List results
GET /api/v1/equipment_test_results
Filter aliases include q[passed_eq], q[inspection_at_gteq], q[description_cont], and q[created_by_eq]. Includes: ?include=items,equipment_test,asset (snake_case aliases accepted).
Response shape
EquipmentTestResultData carries task_list_results (item snapshots with value and field type), the compatibility aliases above, and lazy items. Collection key: equipment_test_results; singular: equipment_test_result.
EquipmentTest certificates
Generate a compliance certificate for a passed certifying result via POST /api/v1/documents/generate with documentable_type=equipment_test_result (and an inspection_certificate template). Requires documents:write / documents.create. See Documents API.
Webhooks
equipment_test_result.*, plus equipment_test.completed / equipment_test.failed — see Webhooks.