---
id: TST-PFM-QRY-418
title: Platform quick search configurations
kind: api-lifecycle
product_area: platform
module: queries
revision: 1
status: draft
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  rhythm-v2-docs: 99376625d3e7ac26936413cfc31a88fba6562464
repository: services-platform
files:
  - modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js
implements:
  - ATS-PFM-QRY-017-01
  - ATS-PFM-QRY-017-02
  - ATS-PFM-QRY-017-03
  - ATS-PFM-QRY-017-04
  - ATS-PFM-QRY-017-09
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 5
isolation: 'The suite’s database fixtures, controlled execution contexts and file-owned external dependency seams.'
evidence:
  - 'services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js'
assertion_bindings:
  - scenario: ATS-PFM-QRY-017-01
    source:
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#refuses the
        configuration list to a caller holding only the Quick Search lookup
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#refuses a
        write to a caller who may only read the settings
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#refuses a
        rebuild to a caller who may change the field list, which is a different power
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#refuses a
        field-list change to a caller who may only ask for a rebuild
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#refuses the
        whole configuration surface to an administrator who may query no dataset
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#leaves out
        the dataset a caller may not query, rather than refusing the list
    scope: assertions cited by the scenario
    provenance: test
  - scenario: ATS-PFM-QRY-017-02
    source:
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#answers
        version 0, which is the version no tenant ever wrote
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#says the
        index is unprovisioned, with no generation on either side
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#wrote
        nothing: reading what a tenant would get does not provision it
    scope: assertions cited by the scenario
    provenance: test
  - scenario: ATS-PFM-QRY-017-03
    source:
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#refuses a
        field the dataset does not offer, naming the field
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#refuses a
        field the record type’s owner never indexes, repeating the owner’s reason
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#refuses a
        tier outside the three there are
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#refuses an
        empty field list, which would index nothing at all
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#reports every
        problem of a list in one refusal, so one round trip fixes them all
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#wrote nothing
        while refusing all of that
    scope: assertions cited by the scenario
    provenance: test
  - scenario: ATS-PFM-QRY-017-04
    source:
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#moves the
        index target to the generation and version the indexer must write
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#committed the
        target beside it, so the configuration and the rebuild it owes are one fact
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#spends no
        version when the same list is sent again, and owes no rebuild
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#refuses the
        version the client read when the configuration has moved on
    scope: assertions cited by the scenario
    provenance: test
  - scenario: ATS-PFM-QRY-017-09
    source:
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#answers the
        archived field in place, as unavailable with the reason a screen shows
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#reports the
        same field as degraded on the index, which is what the archive recorded there
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#targets a
        generation beyond the one in force, which is the rebuild the archive asked for
      - >-
        services-platform:modules/quick-search/tests/e2e/quick-search-configurations.e2e.spec.js#refuses a
        field list that keeps the archived field, by the rule any ineligible field is refused by
    scope: assertions cited by the scenario
    provenance: test
fixture_seams: []
---

# Platform quick search configurations

## Verification Boundary

The file dispatches requests through the real route table and signed execution contexts against its local fixtures.

## What This Suite Proves

Its assertions check quick search configurations. The assertion bindings identify the corresponding acceptance examples and retain their original test-title citations.

## What It Does Not Prove

Local execution does not establish deployed queue scheduling, every external provider response or a passing result at the pinned revision.

## Real Dependencies and Test Doubles

The integration fixture and any imported dependency seams define the environment. Database-oriented checks use PostgreSQL; file-owned transport, clock, provider or worker seams isolate the explicitly controlled boundary.

## Must Not Be Doubled

Keep the dispatcher, route requirements and the handler behavior named by the assertions real. Review any new substitutions before treating the same acceptance bindings as unchanged.
