Skip to content

ATS-CRM-ACT-016Maintain task classifications and shared queues: Capability Test Specification

Markdown

ATS-CRM-ACT-016

Maintain task classifications and shared queues: 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 covered
  • Validation covered
  • Permission covered
  • Edge gap: FND-CRM-ACT-062
  • Failure gap: FND-CRM-ACT-062
  • Boundary covered
  • Concurrency covered
  • Invariant covered
  • Interaction covered

Test Scenarios

9 scenarios proving CAP-CRM-ACT-016; 8 bound to an existing test.

01 Reject configuration maintenance without authoritypermissionapinegativetest
Proves
BR-CAP-CRM-ACT-016-01
Preconditions
The caller may read task types only.
Steps
Submit a reorder.
Expected
The API returns Forbidden.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#answers 403 to a caller who may only read task types
Source
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#answers 403 to a caller who may only read task types
02 Derive configuration references and reject invalid formsvalidationapinegativetest
Proves
BR-CAP-CRM-ACT-016-02
Preconditions
Task configuration creation is available.
Steps
Omit the reference and try malformed, reserved and trailing-underscore references.
Expected
The valid name derives a reference; invalid requests create nothing.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/tasks/tests/integration/services/persistence/task-types.integration.spec.js#refuses an id that is not a configuration id, saying what an id may hold
services-crm:modules/tasks/tests/integration/db/task-configurations.table.integration.spec.js#refuses an id ending in an underscore, which a configuration id may not
Source
services-crm:modules/tasks/tests/integration/services/persistence/task-types.integration.spec.js#derives the id from the name when the create names none
03 Reject invalid names in task configurationboundaryapinegativetest
Proves
BR-CAP-CRM-ACT-016-03
Preconditions
An existing type reserves a name.
Steps
Submit its name again, spaces only and a 101-character name.
Expected
Each request reports the name failure.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/tasks/tests/integration/services/persistence/task-types.integration.spec.js#refuses a create whose name another type of the tenant already has
services-crm:modules/tasks/tests/integration/services/persistence/task-types.integration.spec.js#refuses a create whose name is longer than 100 characters, naming the field
services-crm:modules/tasks/tests/integration/services/persistence/task-queues.queries.integration.spec.js#lists the tenant’s queues in display order, and no task type among them
Source
services-crm:modules/tasks/tests/integration/services/persistence/task-types.integration.spec.js#refuses a create whose name another type of the tenant already has
04 Protect task configuration while referencedinvariantapinegativetest
Proves
BR-CAP-CRM-ACT-016-04
Preconditions
A task names a type and queue.
Steps
Delete each referenced configuration record.
Expected
Both requests conflict and retain the referenced record.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#refuses the delete of a task type a task is of (409)
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#refuses the delete of a task queue a task waits in (409)
Source
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#refuses the delete of a task type a task is of (409)
05 Reorder the complete list including locked entriesinvariantapinegativetest
Proves
BR-CAP-CRM-ACT-016-05
Preconditions
Several task types include a locked entry.
Steps
Send complete, omitted-entry, repeated-entry and foreign-entry lists.
Expected
The valid list moves every entry; invalid lists move none.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/tasks/tests/integration/services/persistence/task-types.integration.spec.js#answers every type of the tenant, in its new order, each as the API returns it
services-crm:modules/tasks/tests/integration/services/persistence/task-types.integration.spec.js#refuses a list that leaves a type out, naming it, and moves no type at all
services-crm:modules/tasks/tests/integration/services/persistence/task-types.integration.spec.js#refuses a list that names a type twice, and moves no type at all
services-crm:modules/tasks/tests/e2e/tasks.e2e.spec.js#refuses a reorder that leaves the tenant’s other types out (400), and moves the one it names nowhere
Source
services-crm:modules/tasks/tests/integration/services/persistence/task-types.integration.spec.js#answers every type of the tenant, in its new order, each as the API returns it
06 Preserve current configuration on stale or locked editsconcurrencyapinegativetest
Proves
BR-CAP-CRM-ACT-016-07
Preconditions
A type has advanced and another is fully locked.
Steps
Replace those records and separately omit description in a valid replacement.
Expected
Invalid edits fail and valid omission clears description.
Data
Each run creates and isolates the records it needs.
Bound to
Source
services-crm:modules/tasks/tests/integration/services/persistence/task-types.integration.spec.js#is refused as a stale object
07 Accept work under inactive configurationtransitionbrowsertest
Proves
BR-CAP-CRM-ACT-016-08
Preconditions
A task type and queue have been deactivated.
Steps
Create work referring to both.
Expected
The task is accepted and earlier references remain valid.
Data
Each run creates and isolates the records it needs.
Bound to
Source
react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0713.spec.ts#CRM-ACC-0713
08 Adopt task type seeds without overwriting customizationruleapitest
Proves
BR-CAP-CRM-ACT-016-09
Preconditions
The customer changed the Follow-up type.
Steps
Apply the baseline repeatedly.
Expected
Missing types are inserted, later application preserves customer values and no queue seed is supplied.
Data
Each run creates and isolates the records it needs.
Bound to
services-crm:modules/tasks/tests/integration/services/persistence/task-types.integration.spec.js#adopts the tenant’s own the second time, rather than writing it again
services-crm:modules/tasks/tests/integration/services/persistence/task-types.integration.spec.js#adopts a record the tenant edited, which is what makes a seed a starting point
services-crm:modules/tasks/tests/integration/services/persistence/task-queues.integration.spec.js#has no provisioning seed of its own: the service offers no insert-if-absent for a queue
Source
services-crm:modules/tasks/tests/integration/services/persistence/task-types.integration.spec.js#writes the type the first time
09 Inactive routing accepts work and baseline adoption keeps editsinteractionapiproposed
Proves
BR-CAP-CRM-ACT-016-08 BR-CAP-CRM-ACT-016-09 BR-CAP-CRM-ACT-012-12
Preconditions
A customized baseline task type and a queue are inactive.
Steps
Reapply both baseline catalogs, create work using the inactive task type and queue, then claim it.
Expected
Customization survives and the service still accepts creation and claim under inactive task configuration; activity retirement retains its distinct contract.
Data
Run-owned records in an isolated workspace; fixed clock for calendar checks.
Source
react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0713.spec.ts#CRM-ACC-0713; services-crm:modules/tasks/tests/integration/services/persistence/task-types.integration.spec.js#adopts a record the tenant edited, which is what makes a seed a starting point; react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0710.spec.ts#CRM-ACC-0710

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.