---
id: TST-PFM-MTD-066
title: custom object records 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/custom-object-records.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/custom-object-records.queries.integration.spec.js
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#maps
    every column of a well-known boat and every one of its properties, a null column left out as every
    record’s is
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#answers
    an archived record too
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#answers
    nothing for a record of another object under this one’s key
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#answers
    nothing in another tenant
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#lists
    the unarchived boats by display name
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#maps
    each record of a page with its properties
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#pages
    by keyset, the next page starting after the last record of the one before
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#answers
    no cursor on the last page
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#lists
    only the archived records when asked for them
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#filters
    by publication state
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#filters
    by a display-name prefix, exactly
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#lists
    a record a case made in its place
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#refuses
    a page larger than one hundred
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#refuses
    a cursor it did not answer
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#refuses
    an object the tenant does not have
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#lists
    nothing of the tests tenant in another tenant
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#finds
    the unarchived records among the ids asked about
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#names
    records by their display names, archived ones included
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#answers
    that boats are published
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#answers
    that no manufacturer is published
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#serves
    an integer range from the integer slot index
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#serves
    an integer equality from the integer slot index
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#serves
    a date range from the date slot index
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#serves
    a text filter from the text slot index, by its field
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#serves
    a reference equality from the reference slot index
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#serves
    a decimal range from the scaled shadow’s index
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#serves
    the keyset page of an object’s records from the list index
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#finds
    a record by its external id with every mapped element and its properties
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#answers
    nothing for an external id of another object
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#answers
    nothing for the external id in another tenant
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#answers
    a create’s changed properties and the unique value keys it would hold
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#answers
    nothing changed for a patch that sends what the record holds
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#answers
    the one property a patch changes
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#lets
    a record keep its own unique value
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#refuses
    a unique value another record holds, naming that record, and writes nothing
  - >-
    services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js#refuses
    the rules of an object that does not exist
fixture_imports:
  - drizzle-orm
  - '@rhythmsoftware/macroservice-testing/refusals'
  - '@rhythmsoftware/macroservice-errors/errors'
  - ../../../../../../db/seeds/well-known/well-known-objects
  - ../../../../services/persistence/custom-object-records
  - ../../support
  - ../../../../services/persistence/custom-object-records
  - '@rhythmsoftware/macroservice-testing/stage'
test_doubles: []
limitations: []
unmatched_specification: FND-PFM-MTD-083
binding_assertions: []
---

# Custom object records 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.
