---
id: TST-PFM-MTD-038
title: association types table
kind: integration
product_area: platform
module: metadata
revision: 1
status: draft
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
repository: services-platform
files:
  - modules/associations/tests/integration/db/association-types.table.integration.spec.js
implements: []
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 5
isolation: >-
  Prepared integration database and the suite fixture records; fixture teardown restores or removes its own
  rows.
evidence:
  - 'services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js'
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#modules/associations/db/association-types.table.ts
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#accepts
    a well-formed row with the defaults of 04 §3, so each refusal below is about the column it spoils
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#refuses
    a second type with the same id in the tenant, by the primary key
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#accepts
    the same id in another tenant, because the tenant leads the key
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#refuses
    a tenant that does not exist, by the tenant foreign key
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#refuses
    a cardinality outside the three, by the cardinality check
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#refuses
    an on_delete_from rule outside the three, by the delete check
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#refuses
    an on_delete_to rule outside the three, by the delete check
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#refuses
    a from object id that is not <application>.<plural>, by the object ids check
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#refuses
    a to object id in capitals, by the object ids check
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#refuses
    a sys_locked value outside the two the standard defines, by the locked check
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#refuses
    a blank label: the trigger nulls it and the column refuses the null
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#stores
    a label trimmed, by the text normalisation trigger
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#shows
    a tenant its own types and never another tenant’s, with no predicate in the statement
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#refuses,
    under the tenant policy, a row written into another tenant
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#moves
    the tenant’s description stamp in the transaction that adds a type
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#moves
    the tenant’s description stamp when a type is renamed
  - >-
    services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js#leaves
    the other tenant’s stamp where it was when this tenant’s type changes
fixture_imports:
  - drizzle-orm
  - '@rhythmsoftware/macroservice-testing/refusals'
  - ../../../db/association-types.table
  - ../support
test_doubles: []
limitations: []
unmatched_specification: FND-PFM-MTD-083
binding_assertions: []
---

# Association types table

## Verification Boundary

This integration suite checks relationship definitions and links within the local test harness. The registered file and pinned revision define its boundary.

## What This Suite Proves

The suite contains executable checks for this module, but no matching detailed scenario is established in this back-fill. The executable coverage finding records that mapping gap. Assertions are evidence of implemented checks; no execution result is claimed.

## What It Does Not Prove

The register does not establish a current passing run or full specification conformance. Behavior outside the suite’s fixtures and assertions remains unverified.

## Real Dependencies and Test Doubles

The fixture uses PostgreSQL and the imported persistence or API code. The fixture imports identify the setup seams; this register makes no broader claim that dependencies are undoubled.

## Must Not Be Doubled

The operation under examination and its asserted stored outcomes must remain real within the declared harness. A fixture cannot replace the write, refusal or transactional effect that the bound scenario checks.
