---
id: TST-PFM-MTD-057
title: custom object record history
kind: integration
product_area: platform
module: metadata
revision: 1
status: draft
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
repository: services-platform
files:
  - modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js
implements:
  - ATS-PFM-MTD-014-01
  - ATS-PFM-MTD-014-02
  - ATS-PFM-MTD-014-03
  - ATS-PFM-MTD-014-04
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/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#modules/custom-objects/history/custom-object-record-history.config.ts
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#answers
    the record block of a boat that exists, named as it is now
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#answers
    the association, the update and the creation, newest first
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#presents
    each item in the shape of the contract’s RevisionSummary, by the console user who made it
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#answers
    the page’s cursor and the instant its history starts
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#presents
    the property groups as sections in the boat form’s order, under the groups’ names
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#names
    each changed property by its label, with its values before and after as the drawer shows them
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#presents
    the recomposed name among the boat’s details
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#names
    a list value by its option’s label
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#names
    the owner’s association by the type’s reverse label and the contact
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#answers
    404 for a revision of another record
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#lists
    everyone who changed the boat, as the contract’s RevisionActor
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#answers
    a caller scoped to the boat object (the premise of the 404 below)
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#refuses
    a caller who may read boats but not their history
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#answers
    404 to a caller whose assignments reach only another object
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#answers
    404 for a boat read through the manufacturer object’s path
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#answers
    a deleted boat’s history from its revisions, saying it is deleted
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#is
    archived (the premise of the history reads below)
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#answers
    the timeline of a record of an archived object
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#answers
    one revision of a record of an archived object
  - >-
    services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#lists
    the actors of a record of an archived object
fixture_imports:
  - '@rhythmsoftware/macroservice-testing/stage'
  - '@rhythmsoftware/macroservice-testing/signed-context'
  - '@rhythmsoftware/macroservice-execution/tenant-time-zones'
  - ../../../../../../db/seeds/well-known/well-known-objects
  - ../../../../../../aws/api/platform-api-handler
  - ../../../../../associations/services/persistence/associations
  - ../../../../../tenants/services/persistence/tenants
  - ../../../../aws/api/custom-objects.routes
  - ../../../../services/persistence/custom-object-records
  - ../../../../services/persistence/custom-objects
  - ../../support
test_doubles: []
limitations: []
unmatched_specification: null
binding_assertions:
  - scenario: ATS-PFM-MTD-014-01
    provenance: test
    source:
      - >-
        services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#answers
        the association, the update and the creation, newest first
      - >-
        services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#presents
        each item in the shape of the contract’s RevisionSummary, by the console user who made it
    note: >-
      These references identify the assertions this suite contributes; bindings to additional suites remain
      part of the scenario’s proof.
  - scenario: ATS-PFM-MTD-014-02
    provenance: test
    source:
      - >-
        services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#presents
        the property groups as sections in the boat form’s order, under the groups’ names
      - >-
        services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#names
        each changed property by its label, with its values before and after as the drawer shows them
      - >-
        services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#names
        a list value by its option’s label
      - >-
        services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#names
        the owner’s association by the type’s reverse label and the contact
    note: >-
      These references identify the assertions this suite contributes; bindings to additional suites remain
      part of the scenario’s proof.
  - scenario: ATS-PFM-MTD-014-03
    provenance: test
    source:
      - >-
        services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#refuses
        a caller who may read boats but not their history
      - >-
        services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#answers
        404 to a caller whose assignments reach only another object
      - >-
        services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#answers
        a deleted boat’s history from its revisions, saying it is deleted
    note: >-
      These references identify the assertions this suite contributes; bindings to additional suites remain
      part of the scenario’s proof.
  - scenario: ATS-PFM-MTD-014-04
    provenance: test
    source:
      - >-
        services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#answers
        the timeline of a record of an archived object
      - >-
        services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#answers
        one revision of a record of an archived object
      - >-
        services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#lists
        the actors of a record of an archived object
    note: >-
      These references identify the assertions this suite contributes; bindings to additional suites remain
      part of the scenario’s proof.
---

# Custom object record history

## Verification Boundary

This integration suite checks custom objects and records 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.
