---
id: TST-PFM-MTD-071
title: record revisions queries
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/persistence/record-revisions.queries.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/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#answers
    the record’s revisions newest first, and every column of each as the store reads it
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#names
    an actor no user row names by the label snapshotted at the change
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#answers
    a page and the cursor of the next, and the next page from it
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#filters
    by the person, the operation and the source
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#filters
    by a window that includes its start and excludes its end
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#answers
    the same record id under every object when the read names none
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#answers
    the other tenant its own revision of the same record and none of this tenant’s
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#refuses
    a cursor it did not answer
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#answers
    the newest revision of the record, whatever a page would filter
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#answers
    no newest revision for a record that has none
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#answers
    a revision of the record by its id
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#answers
    no revision of another record, nor of the same record id under another object
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#answers
    everyone who changed the record once, by name, with the source of their newest change
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#counts
    the other records each transaction changed, and leaves out a transaction that changed only this one
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#answers
    an empty count for no transactions
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#starts
    the record’s history at its first revision
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#starts
    the history of a record with no revision now
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js#answers
    the same through the store bound to the object as through the reads themselves
fixture_imports:
  - drizzle-orm
  - '@rhythmsoftware/macroservice-errors/errors'
  - '@rhythmsoftware/macroservice-testing/refusals'
  - '@rhythmsoftware/macroservice-testing/stage'
  - ../../../../db/record-revisions.table
  - ../../../../services/persistence/record-revisions
  - ../../support
test_doubles: []
limitations: []
unmatched_specification: FND-PFM-MTD-083
binding_assertions: []
---

# Record revisions queries

## 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 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.
