Skip to content

ATS-CRM-ACT-010Record and maintain a piece of work: Acceptance Test Set

Markdown

ATS-CRM-ACT-010

Record and maintain a piece of work: Acceptance Test Set

Markdown
  • DocumentProposed

Planning

Proves capability
CAP-CRM-ACT-010

KindAcceptance test setProduct areaCRMModuleActivities, Follow-ups and Task WorkRevision2

Read atservices-crm a8d1364freact-console baf6dae3

Test Scenarios

12 scenarios proving CAP-CRM-ACT-010; 12 bound to an existing test.

01 Reject missing or excessive task textapinegativetest
Proves
BR-CAP-CRM-ACT-010-01
Preconditions
A valid task type exists.
Steps
Create with missing, blank and 501-character titles and a 20,001-character description.
Expected
Each invalid field is identified and no task is created.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/tasks/tests/integration/services/persistence/tasks.integration.spec.js#refuses a create whose title is longer than 500 characters, naming the field
services-crm:modules/tasks/tests/integration/services/persistence/tasks.integration.spec.js#refuses a create whose description is longer than 20000 characters, naming the field
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#answers 400 for a task with no title
Source
services-crm:modules/tasks/tests/integration/services/persistence/tasks.integration.spec.js#refuses a create whose title is blank, naming the field
02 Require an existing task classificationapinegativetest
Proves
BR-CAP-CRM-ACT-010-02
Preconditions
The workspace can be addressed for task creation.
Steps
Create without a type and with an unknown type.
Expected
Both requests fail validation.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#answers 400 for a task with no type, since every task is of some kind
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#answers 400 for a task type the tenant does not have
services-crm:modules/tasks/tests/integration/db/tasks.table.integration.spec.js#refuses a task with no type at all, which Rhythm 1.0 required too
Source
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#answers 400 for a task with no type, since every task is of some kind
03 Prevent creation in a closed statusapinegativetest
Proves
BR-CAP-CRM-ACT-010-03
Preconditions
A valid task type is available.
Steps
Create directly as Completed.
Expected
The refusal points to the closing action.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/tasks/tests/integration/services/persistence/tasks.integration.spec.js#refuses a create in a closed status, naming the operation that does close a task
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#answers 400 for a task created already completed, since a task is created open
Source
services-crm:modules/tasks/tests/integration/services/persistence/tasks.integration.spec.js#refuses a create in a closed status, naming the operation that does close a task
04 Apply task defaults and retain task dateapitest
Proves
BR-CAP-CRM-ACT-010-04
Preconditions
A task type exists.
Steps
Create without priority or task date, then replace without task date.
Expected
The task starts Open at Normal priority with today’s workspace date, which replacement preserves.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/tasks/tests/integration/services/persistence/tasks.integration.spec.js#dates a task today, in the tenant's calendar, when the create gives no task date
services-crm:modules/tasks/tests/integration/services/persistence/tasks.integration.spec.js#opens a task at normal priority when the create says neither
Source
services-crm:modules/tasks/tests/integration/services/persistence/tasks.integration.spec.js#dates a task today, in the tenant's calendar, when the create gives no task date
05 Reject impossible due daysapinegativetest
Proves
BR-CAP-CRM-ACT-010-05
Preconditions
A valid task type is available.
Steps
Create work due on February 30.
Expected
The response identifies the invalid due-date field.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#answers 400 naming the field for a due date that is not a day of the calendar
Source
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#answers 400 naming the field for a due date that is not a day of the calendar
06 Discard supplied due time while keeping its daybrowsertest
Proves
BR-CAP-CRM-ACT-010-06
Preconditions
A valid task type is available.
Steps
Submit a due date containing a time component.
Expected
Creation succeeds and the stored due value contains only its calendar day.
Data
Each run creates and isolates the records it needs.
Bound to
Source
react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0712.spec.ts#CRM-ACC-0712
07 Reject local references outside the workspaceapinegativetest
Proves
BR-CAP-CRM-ACT-010-07
Preconditions
Another workspace owns contact, organization, type and queue fixtures.
Steps
Create tasks referencing each fixture.
Expected
Each foreign reference fails and no task is retained.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/tasks/tests/integration/services/persistence/tasks.integration.spec.js#refuses a task of this tenant that would name the other tenant’s task type
Source
services-crm:modules/tasks/tests/integration/services/persistence/tasks.integration.spec.js#refuses a contact the tenant does not have
08 Preserve work after related-record deletionapitest
Proves
BR-CAP-CRM-ACT-010-08
Preconditions
A task refers to a contact and organization.
Steps
Delete both related records.
Expected
The task remains with both local references cleared.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/tasks/tests/integration/db/tasks.table.integration.spec.js#keeps the task: the work outlives the record it was about
Source
services-crm:modules/tasks/tests/integration/db/tasks.table.integration.spec.js#keeps the task: the work outlives the record it was about
09 Reserve external task references within each workspaceapinegativetest
Proves
BR-CAP-CRM-ACT-010-09
Preconditions
A task already holds an external reference.
Steps
Reuse that reference locally and in another workspace.
Expected
Local reuse fails and the other workspace can use it.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/tasks/tests/integration/services/persistence/tasks.integration.spec.js#refuses a second task of the tenant with an external id another task holds (DEF-CRM-0719)
services-crm:modules/tasks/tests/integration/services/persistence/tasks.integration.spec.js#lets another tenant’s task hold an external id this tenant’s task holds
Source
services-crm:modules/tasks/tests/integration/services/persistence/tasks.integration.spec.js#refuses a second task of the tenant with an external id another task holds (DEF-CRM-0719)
10 Preserve partial edits and reject stale replacementapinegativetest
Proves
BR-CAP-CRM-ACT-010-10
Preconditions
A saved task has a current version and optional details.
Steps
Patch one field, replace using an older version and submit a mismatched task reference.
Expected
The patch preserves other fields, stale replacement conflicts and the mismatched reference fails.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#and leaves what the patch said nothing about as it was
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#then, when the version is off, refuses the change (409)
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#then, when the id is wrong, refuses the change (400)
services-crm:modules/tasks/tests/integration/services/persistence/tasks.integration.spec.js#refuses a replacement at a version the row has moved past, and leaves the row as it was
Source
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#and leaves what the patch said nothing about as it was
11 Apply task update and deletion locksapinegativetest
Proves
BR-CAP-CRM-ACT-010-11
Preconditions
Separate tasks have full and deletion-only locks.
Steps
Try prohibited editing and deletion.
Expected
The relevant locks cause refusals and preserve the records.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#refuses deleting a task locked against deletes
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#refuses changing a task locked against updates
services-crm:modules/tasks/tests/integration/services/persistence/tasks.integration.spec.js#refuses the delete of a locked task, and leaves it in the table
Source
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#refuses deleting a task locked against deletes
12 Restrict deletion to administrator API usebrowsertest
Proves
BR-CAP-CRM-ACT-010-12
Preconditions
A task and Standard User caller are available.
Steps
Inspect console actions and attempt deletion through the API.
Expected
The console exposes no delete action and the API requires deletion authority.
Data
Each run creates and isolates the records it needs.
Bound to
Source
react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0707.spec.ts#CRM-ACC-0707

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.