Skip to content

ATS-PFM-INT-014Deliver subscribed Rhythm changes to integrations: Capability Test Specification

Markdown

ATS-PFM-INT-014

Deliver subscribed Rhythm changes to integrations: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaPlatformModuleIntegration access, customer extensions and shared workflow configurationRevision3

Read atservices-platform ad3f6a65macroservice-libraries 54536a44react-console baf6dae3

Coverage

  • Rule gap: FND-PFM-INT-078
  • Transition covered
  • Validation covered
  • Permission gap: FND-PFM-INT-078
  • Edge covered
  • Failure covered
  • Boundary gap: FND-PFM-INT-078
  • Concurrency gap: FND-PFM-INT-078
  • Invariant covered
  • Interaction covered

Test Scenarios

12 scenarios proving CAP-PFM-INT-014; 7 bound to an existing test.

01 Subscription creation respects accepted eventsvalidationapinegativetest
Proves
BR-CAP-PFM-INT-014-01
Preconditions
An installation accepts contacts but not organization updates.
Steps
Subscribe to each type, repeat the accepted subscription and supply an invalid filter.
Expected
Only one valid accepted subscription is saved; other requests identify the invalid condition.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/integrations/tests/integration/services/subscriptions/subscriptions.integration.spec.js#refuses a subscription to a type the installation has not accepted, naming the type, and writes nothing
02 Change projection is safe and deduplicatedinvariantapitest
Proves
BR-CAP-PFM-INT-014-02
Preconditions
An integration subscribes to contact updates.
Steps
Change a contact and route the same change twice.
Expected
One delivery contains declared fields and applicable changed-field information without system columns.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/integrations/tests/integration/services/subscriptions/subscriptions.integration.spec.js#turns a CRM change event into a queued delivery of the catalog projection, never the row
03 Filter uncertainty is not permission to deliveredgeunittest
Proves
BR-CAP-PFM-INT-014-03
Preconditions
A subscription condition limits changes to business hours.
Steps
Evaluate in-hours, out-of-hours and unknown cases.
Expected
Only the in-hours case matches; false and unknown cases are skipped.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/integrations/tests/integration/services/subscriptions/subscriptions.integration.spec.js#records a delivery its filter refused as skipped_filter, and queues nothing for it
04 Delivery failure reaches a finite endpointfailureapitest
Proves
BR-CAP-PFM-INT-014-04
Preconditions
The receiving integration repeatedly fails.
Steps
Send a subscribed change through all delivery attempts.
Expected
Six scheduled attempts end in dead status.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/integrations/tests/integration/services/subscriptions/subscriptions.integration.spec.js#retries a classified failure with the async backoff and records the delivery dead after six attempts
05 Repeated dead deliveries pause the subscriptiontransitionapitest
Proves
BR-CAP-PFM-INT-014-05
Preconditions
A subscription already has forty-nine consecutive dead deliveries.
Steps
Fail one more, raise a change while paused and resume.
Expected
It pauses and notifies once, takes no paused delivery and resets its count on resume.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/integrations/tests/integration/services/subscriptions/subscriptions.integration.spec.js#pauses a subscription after fifty dead deliveries in a row and tells its administrators once
06 Consent restoration does not silently resume deliveryinteractionapitest
Proves
BR-CAP-PFM-INT-014-06
Preconditions
An installation has two active event subscriptions.
Steps
Withdraw one event, accept it again and resume its subscription explicitly.
Expected
The withdrawal pauses that subscription in both trails and it stays paused until explicit resume.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/integrations/tests/integration/services/subscriptions/subscription-consent.integration.spec.js#pauses the active subscription of the type left out
07 Installation suspension preserves subscription configurationinteractionapitest
Proves
BR-CAP-PFM-INT-014-07
Preconditions
An active subscription belongs to an enabled installation.
Steps
Pause the installation, change a record, resume and change again.
Expected
The paused installation sends nothing and later changes are delivered after resume.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/integrations/tests/integration/services/subscriptions/subscription-consent.integration.spec.js#skips a subscription whose installation is suspended, and delivers again once it is resumed
08 Exercise the complete subscription standingtransitionapinegativeproposed
Proves
BR-CAP-PFM-INT-014-01 BR-CAP-PFM-INT-014-05 BR-CAP-PFM-INT-014-06 BR-CAP-PFM-INT-003-08
Preconditions
Prepare one independent record in each starting state, including absent-record cases where the model defines creation.
Steps
Run each listed transition once with its guard satisfied, then repeat it with the guard denied. Inspect the resulting record and listed side effects after commit.
Expected
Each positive case reaches its listed destination and records its defined side effects. Each denied case preserves the starting record and creates no transition side effects.
Data
Run-owned records and principals in an isolated workspace.
Source
rhythm-v2-docs:specs/platform/integrations/design/state-models/STATE-PFM-INT-011-subscription-standing.md#transitions
09 Exercise the complete delivery progresstransitionapinegativeproposed
Proves
BR-CAP-PFM-INT-014-04 BR-CAP-PFM-INT-014-08 BR-CAP-PFM-INT-014-09
Preconditions
Prepare one independent record in each starting state, including absent-record cases where the model defines creation.
Steps
Run each listed transition once with its guard satisfied, then repeat it with the guard denied. Inspect the resulting record and listed side effects after commit.
Expected
Each positive case reaches its listed destination and records its defined side effects. Each denied case preserves the starting record and creates no transition side effects.
Data
Run-owned records and principals in an isolated workspace.
Source
rhythm-v2-docs:specs/platform/integrations/design/state-models/STATE-PFM-INT-012-delivery-progress.md#transitions
10 Redelivered change work preserves delivery identityinteractionapiproposed
Proves
BR-CAP-PFM-INT-014-02 BR-CAP-PFM-INT-015-05
Preconditions
A subscription accepts a change event and the routed change has a stable identity.
Steps
Fan out the same change twice and redeliver already claimed routing work.
Expected
One projected delivery exists and stale routing work makes no further attempt.
Data
Run-owned records and principals in an isolated workspace.
Source
services-platform:modules/integrations/tests/integration/services/subscriptions/subscriptions.integration.spec.js#turns a CRM change event into a queued delivery of the catalog projection, never the row,services-platform:modules/integrations/tests/integration/services/events/event-router.integration.spec.js#does nothing for a message of an attempt already made
11 Repeated delivery failure becomes visible attentioninteractionapiproposed
Proves
BR-CAP-PFM-INT-006-10 BR-CAP-PFM-INT-014-05
Preconditions
A subscription has forty-nine consecutive dead deliveries.
Steps
Fail its next delivery, read operational attention and resume the subscription.
Expected
The subscription pauses with one notice and the dead delivery is available for investigation.
Data
Run-owned records and principals in an isolated workspace.
Source
react-console:lib/integrations/needs-attention.test.ts#leaves a settling (unknown) execution out however long it has been unknown,services-platform:modules/integrations/tests/integration/services/subscriptions/subscriptions.integration.spec.js#pauses a subscription after fifty dead deliveries in a row and tells its administrators once
12 Uninstall removes only its own delivery interestsinteractionapiproposed
Proves
BR-CAP-PFM-INT-003-08 BR-CAP-PFM-INT-014-07
Preconditions
Two installations subscribe to one business change and all accounts of the first are disconnected.
Steps
Uninstall the first installation and generate the subscribed change.
Expected
Only the surviving installation receives a delivery record.
Data
Run-owned records and principals in an isolated workspace.
Source
services-platform:modules/integrations/tests/integration/services/connections/disconnect-discard-uninstall.integration.spec.js#removes every subscription of the installation with the uninstallation, and no other installation’s,services-platform:modules/integrations/tests/integration/services/subscriptions/subscription-consent.integration.spec.js#skips a subscription whose installation is suspended, and delivers again once it is resumed

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.