Skip to content

ATS-CRM-ENT-010Keep dated relationships current

Markdown

ATS-CRM-ENT-010

Keep dated relationships current

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaCRMModuleEntitiesRevision1

Read atservices-crm a8d1364freact-console baf6dae3

Coverage

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

Test Scenarios

13 scenarios proving CAP-CRM-ENT-010; 6 bound to an existing test.

01 the workspace's date decides, not UTC'sboundaryapinegativetest
Proves
BR-CAP-CRM-ENT-010-01 BR-CAP-CRM-ENT-010-02
Preconditions
Prepare a workspace in a zone behind UTC and affiliations ending today and starting tomorrow.
Steps
Read and list the affiliations; save a primary starting on the workspace’s tomorrow; save one starting on its today.
Expected
Ending today is current; starting tomorrow is future; the first primary rejected; the second saved.
Data
Use workspace time zone set.
Bound to
Source
services-crm:modules/entities/tests/integration/services/persistence/contact-affiliations.business-dates.integration.spec.js#refuses a primary starting on the tenant's tomorrow, though it is already UTC's and Sydney's today
02 the console preserves to the workspace's dayrulebrowsernegativetest
Proves
BR-CAP-CRM-ENT-010-03
Preconditions
Prepare a browser in a zone a day ahead of the workspace.
Steps
Open a contact's affiliations and add one near midnight.
Expected
Filters and counts match the service; the default start date is the workspace's today.
Data
Use browser time zone override.
Bound to
Source
react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0186.spec.ts#CRM-ACC-0186
03 the window settles the right daysboundaryunittest
Proves
BR-CAP-CRM-ENT-010-04
Preconditions
No additional setup is required.
Steps
Compute windows for a never-reconciled workspace, a skipped weekend, a settled day, a zone moved west.
Expected
Yesterday to today; every skipped day; nothing; nothing.
Data
No additional fixtures.
Bound to
Source
services-crm:modules/entities/tests/unit/services/affiliations/affiliation-date-window.spec.js#spans every day of a skipped weekend, so the next night makes them up
04 Starts and ends take effect without a saveinteractionbrowsertest
Proves
BR-CAP-CRM-ENT-010-05
Preconditions
Prepare a role ending yesterday and a affiliation starting today at organizations retained to rules.
Steps
Run the pass.
Expected
Compliance changes both ways; automatic roles given on the start day, never on the eve; every change listed with its reason.
Data
No additional fixtures.
Bound to
Source
services-crm:modules/entities/tests/integration/services/affiliations/affiliation-date-reconciliation.integration.spec.js#takes the organization out of compliance the next morning, with no save of the contact
05 a pass is idempotent and only moves forwardinvariantapitest
Proves
BR-CAP-CRM-ENT-010-06 INV-DOM-CRM-ENT-033-14
Preconditions
Prepare a settled day.
Steps
Run again; retake an open window.
Expected
No record changes, the organization's version unmodified; the watermark only forward.
Data
No additional fixtures.
Bound to
Source
services-crm:modules/entities/tests/integration/services/affiliations/affiliation-date-reconciliation.integration.spec.js#finds the day settled and changes nothing, the organization’s version included
06 On-demand runs need the bulk key; dry runs write nothingpermissionapinegativetest
Proves
BR-CAP-CRM-ENT-010-07
Preconditions
Prepare a caller with the bulk key and callers without.
Steps
Dry run; real run; real run naming a day; a bad day; an unknown property; callers with read or update only.
Expected
Window and changes, no record changes; settled; 400 each; 403 for the others.
Data
No additional fixtures.
Bound to
Source
services-crm:modules/entities/tests/e2e/affiliation-date-reconciliation.e2e.spec.js#refuses a real run that names a day, 400 naming it
07 the scheduled pass runs after the workspace's midnight where switched ontransitionapiproposed
Proves
BR-CAP-CRM-ENT-010-08
Preconditions
Prepare a dev workspace with the switch on and an affiliation starting tomorrow.
Steps
Wait past the workspace's midnight without saving.
Expected
The affiliation is current, its roles given and compliance recalculated within one reconciler interval.
Data
Use deployment with affiliationDateReconciliation=on.
Source
services-crm:docs/affiliations/README.md#5.6b The overnight date reconciliation (D-46; CRM-M2 A6 and A7)
08 Keep a failed compliance day available for another passfailureapinegativeproposed
Proves
BR-CAP-CRM-ENT-010-06
Preconditions
A workspace has an unsettled date window and an organization needing recalculation.
Steps
Cause that organization’s recalculation to fail; inspect the watermark; remove the fault and repeat the pass.
Expected
The failed pass does not mark that compliance window settled; the retry reaches the previously failing organization.
Data
Run-owned records and configuration in an isolated workspace.
Source
services-crm:modules/entities/tests/integration/services/affiliations/affiliation-date-reconciliation.integration.spec.js#takes the organization out of compliance the next morning, with no save of the contact
09 Apply a future tie’s selected contact-point defaultsinteractionapiproposed
Proves
BR-CAP-CRM-ENT-006-12 BR-CAP-CRM-ENT-010-05
Preconditions
A future affiliation has pending selected mappings and empty destination purposes.
Steps
Run a date pass before its start, then on its local start day; read the person after each pass.
Expected
The early pass makes no links; the due pass fills the selected destinations once.
Data
Run-owned records and configuration in an isolated workspace.
Source
services-crm:modules/entities/tests/integration/services/affiliations/affiliation-date-reconciliation.follow-ups.integration.spec.js#links every default of its type on the start day when the save stated no choice; services-crm:modules/entities/tests/integration/services/affiliations/affiliation-date-reconciliation.integration.spec.js#takes the organization out of compliance the next morning, with no save of the contact
10 Keep a one-day affiliation current on its last dayinteractionapiproposed
Proves
BR-CAP-CRM-ENT-009-07 BR-CAP-CRM-ENT-010-02
Preconditions
A person has an affiliation whose start and end are the same workspace date.
Steps
Read the people list on that date and again on the next workspace date.
Expected
The tie is current on its single day and past on the following day.
Data
Run-owned records and configuration in an isolated workspace.
Source
services-crm:modules/entities/tests/integration/services/persistence/contacts.integration.spec.js#refuses an affiliation that ends before it starts; services-crm:modules/entities/tests/integration/services/persistence/contact-affiliations.business-dates.integration.spec.js#reads a tie ending on the tenant's today as current
11 Due dates settle automatic responsibilitiesinteractionapiproposed
Proves
BR-CAP-CRM-ENT-010-05 BR-CAP-CRM-ENT-011-07
Preconditions
A future affiliation has an eligible active automatic role.
Steps
Reconcile before the local start day, then on that day and once again.
Expected
No role is assigned early; the due pass assigns it and the repeated pass adds no duplicate.
Data
Run-owned records and configuration in an isolated workspace.
Source
services-crm:modules/entities/tests/integration/services/affiliations/affiliation-date-reconciliation.integration.spec.js#takes the organization out of compliance the next morning, with no save of the contact; services-crm:modules/entities/tests/integration/services/contacts/role-assignment/automatic-role-reconciliation.integration.spec.js#gives the automatic and first-contact roles on the start day in the tenant calendar
12 An expired role changes organizational coverageinteractionapiproposed
Proves
BR-CAP-CRM-ENT-010-05 BR-CAP-CRM-ENT-012-03
Preconditions
An organization meets its minimum through a role ending today.
Steps
Read coverage on the inclusive end day; reconcile the next local day and reread coverage.
Expected
Coverage remains satisfied through the last day and becomes deficient after the ended role no longer counts.
Data
Run-owned records and configuration in an isolated workspace.
Source
services-crm:modules/entities/tests/integration/services/affiliations/affiliation-date-reconciliation.integration.spec.js#takes the organization out of compliance the next morning, with no save of the contact; services-crm:modules/entities/tests/integration/services/organizations/compliance/organization-compliance.integration.spec.js#brings an organization into compliance for a role held on a current affiliation that is not primary
13 Exercise every declared authority independentlypermissionapinegativeproposed
Proves
BR-CAP-CRM-ENT-010-07
Preconditions
An eligible record and configuration fixture exist for each operation; the caller can reach only the run’s workspace.
Steps
For each declared permission, execute its matching operation with that permission, then without it while retaining the other required grants. Read affected records after every refused mutation.
Expected
The authorized case reaches the operation; the missing-grant case is refused and preserves saved data. Record access alone does not authorize the other declared actions.
Data
Run-owned records and configuration in an isolated workspace.
Source
services-crm:aws/crm.service.ts:ApplicationPermissions; services-crm:modules/entities/aws/api/entities.routes.ts

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.