Skip to content

ATS-CRM-ACT-005Read past interactions and upcoming work on a record timeline: Capability Test Specification

Markdown

ATS-CRM-ACT-005

Read past interactions and upcoming work on a record timeline: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaCRMModuleActivities, Follow-ups and Task WorkRevision3

Read atservices-crm a8d1364freact-console baf6dae3rhythm-v2-docs 18a49edf

Coverage

  • Rule covered
  • Transition gap: FND-CRM-ACT-051
  • Validation covered
  • Permission covered
  • Edge covered
  • Failure gap: FND-CRM-ACT-051
  • Boundary covered
  • Concurrency gap: FND-CRM-ACT-051
  • Invariant covered
  • Interaction covered

Test Scenarios

13 scenarios proving CAP-CRM-ACT-005; 11 bound to an existing test.

01 Require record and activity read authoritypermissionapinegativetest
Proves
BR-CAP-CRM-ACT-005-01
Preconditions
Callers independently lack activity or related-record read rights.
Steps
Request timelines and summaries.
Expected
Each unauthorized request returns Forbidden.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#refuses a timeline to a caller who may not read the contact: 403
services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#refuses a contact’s timeline summary to a caller without crm.activities.read: 403
services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#refuses an organization’s timeline summary to a caller who may not read the organization: 403
Source
services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#refuses a timeline to a caller who may not read the contact: 403
02 Combine timeline kinds in the correct sectionsruleapitest
Proves
BR-CAP-CRM-ACT-005-02 BR-CAP-CRM-ACT-005-03
Preconditions
A record has activities in each status and open and closed tasks.
Steps
Read Upcoming and History.
Expected
The streams follow their ordering and tasks use their defined calendar-day positions.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/activities/tests/integration/services/persistence/activities.queries.integration.spec.js#lists the history newest first: completed and cancelled activities and closed tasks
services-crm:modules/activities/tests/integration/services/persistence/activities.queries.integration.spec.js#lists the upcoming soonest first: the overdue scheduled activity, then open tasks and scheduled activities in time order
services-crm:modules/activities/tests/integration/services/persistence/activities.queries.integration.spec.js#answers a task item whole: its envelope at the start of its day in the tenant’s zone, and the task
services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#answers a contact’s upcoming soonest first, the open task among the scheduled activities
Source
services-crm:modules/activities/tests/integration/services/persistence/activities.queries.integration.spec.js#lists the history newest first: completed and cancelled activities and closed tasks
03 Omit task information without task read permissionpermissionapinegativetest
Proves
BR-CAP-CRM-ACT-005-04
Preconditions
A record has related tasks and the caller cannot read tasks.
Steps
Read its timeline and summary.
Expected
Task entries and task counts are absent.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#leaves the tasks out for a caller who may not read tasks
services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#leaves the task counts out of the summary for a caller who may not read tasks
services-crm:modules/activities/tests/integration/services/persistence/timelines.queries.integration.spec.js#leaves the task counts, the assignees and the open tasks out for a caller who may not read tasks
Source
services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#leaves the tasks out for a caller who may not read tasks
04 Count and display shared interactions once per recordinvariantapitest
Proves
BR-CAP-CRM-ACT-005-05
Preconditions
One activity links three contacts and an organization.
Steps
Read each record’s timeline and summary.
Expected
Each receives one entry and one contribution to its counts.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/activities/tests/integration/services/persistence/activities.queries.integration.spec.js#shows the activity linked to three contacts and an organization once on each of the four timelines
services-crm:modules/activities/tests/integration/services/persistence/timelines.queries.integration.spec.js#counts the activity linked to three contacts and an organization once on each of the four summaries
Source
services-crm:modules/activities/tests/integration/services/persistence/activities.queries.integration.spec.js#shows the activity linked to three contacts and an organization once on each of the four timelines
05 Search visible text without accent or case sensitivityboundaryapitest
Proves
BR-CAP-CRM-ACT-005-07
Preconditions
Notes contain accented text, uppercase text and escaped ampersands.
Steps
Search equivalent plain text and text occurring only in markup encoding.
Expected
Visible equivalents match and encoding-only text does not.
Data
Each run creates and isolates the records it needs.
Bound to
Source
services-crm:modules/activities/tests/integration/services/persistence/activities.queries.integration.spec.js#finds “Café” by “cafe”
06 Continue merged timeline pages without repetitionboundaryapitest
Proves
BR-CAP-CRM-ACT-005-08
Preconditions
The fixture contains 90 activities and 40 closed tasks.
Steps
Read successive pages of 25 entries.
Expected
All 130 entries appear once in order across six pages.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/activities/tests/integration/services/persistence/activities.queries.integration.spec.js#answers every item exactly once, in order, across pages of 25 that interleave the two sources
Source
services-crm:modules/activities/tests/integration/services/persistence/activities.queries.integration.spec.js#answers every item exactly once, in order, across pages of 25 that interleave the two sources
07 Flag past scheduled workedgeapitest
Proves
BR-CAP-CRM-ACT-005-09
Preconditions
A scheduled activity is past and an open task was due yesterday.
Steps
Read Upcoming.
Expected
Both entries carry overdue flags.
Data
Each run creates and isolates the records it needs.
Bound to
Source
services-crm:modules/activities/tests/integration/services/persistence/activities.queries.integration.spec.js#marks an overdue scheduled activity and an overdue open task as overdue
08 Aggregate the full record independently of pagesruleapitest
Proves
BR-CAP-CRM-ACT-005-11
Preconditions
A record contains mixed activity and task statuses and owners.
Steps
Read its timeline summary.
Expected
Type and status counts, bounded actor choices and upcoming totals match the full fixture.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/activities/tests/integration/services/persistence/timelines.queries.integration.spec.js#counts a contact’s mix by type, by status, its owners and assignees, its upcoming items and its tasks
services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#counts the summary’s upcoming items as the scheduled activities and the open tasks
Source
services-crm:modules/activities/tests/integration/services/persistence/timelines.queries.integration.spec.js#counts a contact’s mix by type, by status, its owners and assignees, its upcoming items and its tasks
09 Hide foreign record existencepermissionapinegativetest
Proves
BR-CAP-CRM-ACT-005-12
Preconditions
The requested contact belongs to another workspace.
Steps
Request its timeline and summary.
Expected
Both requests report Not Found.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#answers 404 for a contact the tenant does not have
services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#answers 404 for the summary of a contact the tenant does not have
services-crm:modules/activities/tests/integration/services/persistence/activities.queries.integration.spec.js#refuses the timeline of another tenant’s contact as one the tenant does not have
Source
services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#answers 404 for a contact the tenant does not have
10 Inspect absence responses after a mergevalidationapinegativetest
Proves
BR-CAP-CRM-ACT-005-12
Preconditions
Two contacts have been merged.
Steps
Request the former contact’s timeline.
Expected
The historical browser journey accepts Not Found or Gone for the absorbed timeline; it does not assert a survivor in that response.
Data
Each run creates and isolates the records it needs.
Bound to
Source
react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0720.spec.ts#CRM-ACC-0720
11 Merge changes the timeline context without multiplying entriesinteractionapiproposed
Proves
BR-CAP-CRM-ACT-005-05 BR-CAP-CRM-ACT-018-05 BR-CAP-CRM-ACT-018-07
Preconditions
Two contacts share an interaction and the duplicate has an open task.
Steps
Merge into the survivor, then read the survivor timeline and its summary and read the moved task.
Expected
The shared entry contributes once, the task references the survivor and the summary agrees with the consolidated context.
Data
Run-owned records in an isolated workspace; fixed clock for calendar checks.
Source
services-crm:modules/activities/tests/integration/services/persistence/activities.queries.integration.spec.js#shows the activity linked to three contacts and an organization once on each of the four timelines; react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0720.spec.ts#CRM-ACC-0720
12 Reject malformed timeline queriesvalidationapinegativetest
Proves
BR-CAP-CRM-ACT-005-13
Preconditions
An authorized contact timeline exists.
Steps
Request an invented query parameter and an invented page cursor.
Expected
Both requests return a validation refusal.
Data
Run-owned records in an isolated workspace; fixed clock for calendar checks.
Bound to
services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#refuses a timeline cursor no page answered: 400
services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#refuses a timeline query parameter it does not know: 400
Source
services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#refuses a timeline query parameter it does not know: 400
13 Require the survivor on a merged timeline refusalvalidationapinegativeproposed
Proves
BR-CAP-CRM-ACT-005-12 BR-CAP-CRM-ACT-018-08 INV-DOM-CRM-ACT-005-05
Preconditions
A contact has merged into a known survivor.
Steps
Request the absorbed contact timeline and summary.
Expected
Both responses report Gone and identify the survivor.
Data
Run-owned records in an isolated workspace; fixed clock for calendar checks.
Source
services-crm:modules/activities/aws/api/activities.routes.ts:timelineRoutes

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.