---
id: TST-PFM-MTD-124
title: standard field label overrides
kind: integration
product_area: platform
module: metadata
revision: 1
status: draft
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
repository: services-platform
files:
  - modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js
implements:
  - ATS-PFM-MTD-004-02
  - ATS-PFM-MTD-004-03
  - ATS-PFM-MTD-004-04
  - ATS-PFM-MTD-004-06
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/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#answers
    the tenant's label, trimmed, with the owner's label beside it
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#stamps
    the first override as version 1
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#persists
    the label, read back through the repository
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#never
    touches the registered field it overrides
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#replaces
    the label on a second set
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#bumps
    the version on a second set, keeping the creator
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#persists
    the replacement, read back through the repository
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#accepts
    a label of exactly the longest allowed
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#set
    the label for the tenant that asked
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#shows
    the other tenant no label on the same field
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#leaves
    the first tenant's label in place when the other tenant sets its own
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#answers
    the other tenant its own label
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
    a field key that was never registered
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
    a custom field key, which is no standard field
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
    a column of the table the owner never described
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
    another undescribed column of the same table
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
    an object that was never registered
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
    an empty label
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
    a label of nothing but spaces
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
    a label one character longer than the longest allowed
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
    to act without a tenant in the execution context
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
    a tenant the caller cannot reach
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#stored
    the override while the field was live
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
    a new override on the retired field as a 404
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#leaves
    the override the tenant already had in place
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#stored
    the label before it was removed
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#answers
    that it removed the label, and the owner's label that applies again
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#leaves
    no override row behind
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#answers
    the owner's label, and removed false, for a field the tenant never overrode
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#never
    removes another tenant's label
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
    a field key that was never registered
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
    an object that was never registered
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
    to act without a tenant in the execution context
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
    a tenant the caller cannot reach
  - >-
    services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#db/migrations/0010_metadata.sql
fixture_imports:
  - drizzle-orm
  - ../../../../services/registration/register-application
  - ../../../../services/persistence/registered-objects
  - ../../../../db/standard-field-label-overrides.table
  - ../../../../services/persistence/standard-field-label-overrides
  - '@rhythmsoftware/macroservice-testing/execution-context'
  - '@rhythmsoftware/macroservice-testing/stage'
  - '@rhythmsoftware/macroservice-testing/refusals'
  - '@rhythmsoftware/macroservice-errors/errors'
  - '@rhythmsoftware/macroservice-errors/pg-errors'
  - ../../support
test_doubles: []
limitations: []
unmatched_specification: null
binding_assertions:
  - scenario: ATS-PFM-MTD-004-02
    provenance: test
    source:
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
        a custom field key, which is no standard field
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
        a column of the table the owner never described
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
        a new override on the retired field as a 404
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#leaves
        the override the tenant already had in place
    note: >-
      These references identify the assertions this suite contributes; bindings to additional suites remain
      part of the scenario’s proof.
  - scenario: ATS-PFM-MTD-004-03
    provenance: test
    source:
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
        a label of nothing but spaces
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#accepts
        a label of exactly the longest allowed
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#refuses
        a label one character longer than the longest allowed
    note: >-
      These references identify the assertions this suite contributes; bindings to additional suites remain
      part of the scenario’s proof.
  - scenario: ATS-PFM-MTD-004-04
    provenance: test
    source:
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#never
        touches the registered field it overrides
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#leaves
        the first tenant's label in place when the other tenant sets its own
    note: >-
      These references identify the assertions this suite contributes; bindings to additional suites remain
      part of the scenario’s proof.
  - scenario: ATS-PFM-MTD-004-06
    provenance: test
    source:
      - >-
        services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js#bumps
        the version on a second set, keeping the creator
    note: >-
      These references identify the assertions this suite contributes; bindings to additional suites remain
      part of the scenario’s proof.
---

# Standard field label overrides

## Verification Boundary

This integration suite checks record descriptions and field configuration within the local test harness. The registered file and pinned revision define its boundary.

## What This Suite Proves

The bindings identify the detailed or feature scenarios whose outcomes have assertions in this suite. Original case references remain attached to the detailed scenarios so a reviewer can inspect the exact assertion. 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.
