---
id: TST-CRM-ACT-003
title: Activity storage guarantees
kind: integration
product_area: crm
module: activities-tasks
revision: 1
status: draft
source_sha:
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
repository: services-crm
files:
- modules/activities/tests/integration/db/activities.table.integration.spec.js
implements:
- ATS-CRM-ACT-001-01
- ATS-CRM-ACT-001-02
- ATS-CRM-ACT-001-07
- ATS-CRM-ACT-001-12
- ATS-CRM-ACT-008-04
- ATS-CRM-ACT-008-06
- ATS-CRM-ACT-009-04
- ATS-CRM-ACT-009-05
- ATS-CRM-ACT-018-01
- ATS-CRM-ACT-019-01
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 5
isolation: Local test database fixtures and suite-owned records.
evidence:
- services-crm:modules/activities/tests/integration/db/activities.table.integration.spec.js
- Static inspection only; no runtime result is imported.
- Dependencies and doubles are inspected in the pinned suite setup and imports.
assertion_evidence:
  provenance: test
  source: services-crm:modules/activities/tests/integration/db/activities.table.integration.spec.js
---

# Activity storage guarantees

## Verification Boundary

This suite checks database guarantees independently of a browser or remote API.

## What This Suite Proves

Database writes check activity values, typed links, primary uniqueness, type and outcome relationships, copied timeline values and workspace isolation.

The registered scenario bindings identify the assertion contributions this executable supplies. A compound scenario can require several suites.

## What It Does Not Prove

It does not establish deployed Lambda transport, live Platform policy or end-user browser behavior.

## Real Dependencies and Test Doubles

The migrated PostgreSQL schema and application or query-reader role execute against isolated fixtures. Database constraints, views and workspace policies are real.

## Must Not Be Doubled

Constraints, triggers, views, workspace policies and the transaction that makes a refusal observable remain real.
