Skip to content

ATS-PFM-QRY-020Evaluate dated conditions for named records: Capability Test Specification

Markdown

ATS-PFM-QRY-020

Evaluate dated conditions for named records: Capability Test Specification

Markdown
  • DocumentProposed

Planning

Proves capability
CAP-PFM-QRY-020

Design

Executed by
TST-PFM-QRY-266

KindAcceptance test setProduct areaPlatformModuleQuestions, record exploration and data deliveryRevision2

Read atservices-platform ad3f6a65react-console baf6dae3rhythm-v2-docs 99376625

Coverage

  • Rule covered
  • Transition not-applicable
  • Validation gap: FND-PFM-QRY-070
  • Permission covered
  • Edge covered
  • Failure gap: FND-PFM-QRY-070
  • Boundary covered
  • Concurrency gap: FND-PFM-QRY-070
  • Invariant covered
  • Interaction covered

Test Scenarios

7 scenarios proving CAP-PFM-QRY-020; 3 bound to an existing test.

01 User callers cannot evaluate system conditionspermissionapinegativetest
Proves
BR-CAP-PFM-QRY-020-01
Preconditions
A system context and a user context ask about the same contacts.
Steps
Evaluate the conditions and request their compilation as each context.
Expected
The system evaluation works; both user operations are refused.
Data
Controlled contacts, affiliations and system execution contexts.
Bound to
services-platform:modules/queries/tests/integration/services/execute/compile-predicates.integration.spec.js#refuses a user execution, because predicates are evaluated by the macroservice itself
Source
services-platform:modules/queries/tests/integration/services/execute/compile-predicates.integration.spec.js#refuses a user execution, because predicates are evaluated by the macroservice itself
02 Invalid evaluation lists are refusedboundaryapinegativeproposed
Proves
BR-CAP-PFM-QRY-020-02
Preconditions
A system context with access to a registered dataset.
Steps
Try empty and oversized subject and predicate lists, duplicate names and incompatible options.
Expected
Each invalid request is refused before its statement runs.
Data
Controlled contacts, affiliations and system execution contexts.
Source
services-platform:modules/queries/services/execute/compile-predicates.ts:validPredicates
03 Missing facts preserve the chosen null meaningruleapitest
Proves
BR-CAP-PFM-QRY-020-03
Preconditions
Contacts include known and absent values.
Steps
Evaluate positive and negated conditions under both null policies.
Expected
Default results retain unknown facts; filter-style results match the query’s treatment of those facts.
Data
Controlled contacts, affiliations and system execution contexts.
Bound to
services-platform:modules/queries/tests/integration/services/execute/compile-predicates.integration.spec.js#answers NULL for a predicate over a fact the contact does not have, when NULL means unknown
services-platform:modules/queries/tests/integration/services/execute/compile-predicates.integration.spec.js#keeps a negated operator unknown over an absent value, and answers it as the filter does when NULL means false
Source
services-platform:modules/queries/tests/integration/services/execute/compile-predicates.integration.spec.js#answers NULL for a predicate over a fact the contact does not have, when NULL means unknown
04 Collection calculations handle empty populationsedgeapiproposed
Proves
BR-CAP-PFM-QRY-020-04
Preconditions
Contacts have zero, one and several qualifying child records.
Steps
Evaluate count, sum, minimum and maximum over their collections.
Expected
Calculated values match qualifying children; empty collections return the stated zero or absent value.
Data
Controlled contacts, affiliations and system execution contexts.
Source
services-platform:modules/queries/services/execute/compile-query.ts:subjectPredicateCompiler
05 Evaluation follows the requested calendar dayboundaryapinegativetest
Proves
BR-CAP-PFM-QRY-020-05
Preconditions
A contact reaches an age threshold today and has dated affiliations.
Steps
Evaluate today and the previous day; use an invalid day and a date token on a non-date field.
Expected
The threshold changes with the chosen day; both invalid uses are refused.
Data
Controlled contacts, affiliations and system execution contexts.
Bound to
services-platform:modules/queries/tests/integration/services/execute/compile-predicates.integration.spec.js#resolves the same shift from the as-of day, so a contact eighteen today was not the day before
Source
services-platform:modules/queries/tests/integration/services/execute/compile-predicates.integration.spec.js#resolves the same shift from the as-of day, so a contact eighteen today was not the day before
06 Evaluation confines reads and avoids sensitive logsinvariantapinegativeproposed
Proves
BR-CAP-PFM-QRY-020-06
Preconditions
Two workspaces have records with the same identities.
Steps
Evaluate in each workspace and inspect the role, execution settings and emitted logs.
Expected
Results contain only local records; database reads are read-only and logs contain no subject identities, values or statement text.
Data
Controlled contacts, affiliations and system execution contexts.
Source
services-platform:modules/queries/services/execute/compile-predicates.ts:evaluateSubjectPredicates
07 Dated conditions agree with a same-day questioninteractionapiproposed
Proves
BR-CAP-PFM-QRY-002-10 BR-CAP-PFM-QRY-020-05
Preconditions
Two contacts straddle an age threshold on a chosen local calendar day.
Steps
Evaluate the dated predicate as a system caller and execute an equivalent contact question on that day.
Expected
The predicate’s true identities equal the contact question’s matching identities on each of two adjacent days.
Data
Use a workspace calendar and two birthdays at the threshold.
Source
services-platform:modules/queries/tests/integration/services/execute/run-query.integration.spec.js#reads a day as that day in the tenant's zone, not in UTC,services-platform:modules/queries/tests/integration/services/execute/compile-predicates.integration.spec.js#resolves the same shift from the as-of day, so a contact eighteen today was not the day before

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.