Skip to content

ATS-PFM-TNL-009Maintain the baseline of existing workspaces: Capability Test Specification

Markdown

ATS-PFM-TNL-009

Maintain the baseline of existing workspaces: Capability Test Specification

Markdown
  • DocumentProposed

Planning

Proves capability
CAP-PFM-TNL-009

Design

Executed by
TST-PFM-TNL-023, TST-PFM-TNL-031, TST-PFM-TNL-080

KindAcceptance test setProduct areaPlatformModuleWorkspace Lifecycle Across ApplicationsRevision3

Read atservices-platform ad3f6a65services-crm a8d1364fservices-commerce c8b66a98services-committees 36129c24services-membership 5994c270services-submissions 64236c19services-websites 5fc6823cservices-marketing d071a159rhythm-v2-docs d318a948

Coverage

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

Test Scenarios

8 scenarios proving CAP-PFM-TNL-009; 7 bound to an existing test.

01 Initialization reaches local and remote workruleapitest
Proves
BR-CAP-PFM-TNL-009-01
Preconditions
An active workspace has local and remote participants.
Steps
Initialize each participant.
Expected
The responses report their work, with remote invocation through its lifecycle function.
Data
Use the run-owned records and caller contexts created by the cited tests; use their provider and clock seams only where declared.
Bound to
services-platform:modules/tenants/tests/integration/services/provisioning/initialize-tenant.integration.spec.js#reaches a participant of another macroservice through its lifecycle function
services-platform:modules/tenants/tests/e2e/tenant-provisioning.e2e.spec.js#says which participant ran for which tenant, and what it did
Source
services-platform:modules/tenants/tests/integration/services/provisioning/initialize-tenant.integration.spec.js#runs the participant for the tenant and says what it did
02 Initialization refuses outgoing workspacesvalidationapinegativetest
Proves
BR-CAP-PFM-TNL-009-02
Preconditions
Fixtures include pending deletion, destruction and an unknown participant.
Steps
Attempt initialization for each.
Expected
Each attempt refuses without changing the workspace.
Data
Use the run-owned records and caller contexts created by the cited tests; use their provider and clock seams only where declared.
Bound to
services-platform:modules/tenants/tests/integration/services/provisioning/initialize-tenant.integration.spec.js#refuses a participant that is not in the registry, and names the ones that are
services-platform:modules/tenants/tests/e2e/tenant-provisioning.e2e.spec.js#may not initialize a participant of their own tenant
Source
services-platform:modules/tenants/tests/integration/services/provisioning/initialize-tenant.integration.spec.js#refuses a tenant whose deletion is pending
03 Deployment updates invoke reconciliationinteractionunittest
Proves
BR-CAP-PFM-TNL-009-03
Preconditions
The baseline deployment resource has create, update and delete events.
Steps
Handle each event.
Expected
Create and update reconcile; delete performs no baseline work.
Data
Use the run-owned records and caller contexts created by the cited tests; use their provider and clock seams only where declared.
Bound to
services-crm:modules/tenant-lifecycle/tests/unit/lifecycle/baseline-reconciliation.spec.js#runs the reconciliation on a create and answers its counts under the stable physical id
services-crm:modules/tenant-lifecycle/tests/unit/lifecycle/baseline-reconciliation.spec.js#runs the reconciliation on every update, which is every deployment
Source
services-crm:modules/tenant-lifecycle/tests/unit/lifecycle/baseline-reconciliation.spec.js#runs the reconciliation on a create and answers its counts under the stable physical id
04 Older baseline converges on current seedsinvariantapitest
Proves
BR-CAP-PFM-TNL-009-04
Preconditions
An uncustomized workspace lacks seed entries.
Steps
Reconcile and compare with a newly provisioned fixture.
Expected
Seeded configuration and the ledger match the current baseline.
Data
Use the run-owned records and caller contexts created by the cited tests; use their provider and clock seams only where declared.
Bound to
services-crm:modules/tenant-lifecycle/tests/integration/services/lifecycle/baseline-reconciliation.integration.spec.js#gives a tenant that predates the seeds the five task types, follow-up among them
services-crm:modules/tenant-lifecycle/tests/integration/services/lifecycle/baseline-reconciliation.integration.spec.js#leaves an old tenant with exactly the seed ledger a tenant provisioned today holds
Source
services-crm:modules/tenant-lifecycle/tests/integration/services/lifecycle/baseline-reconciliation.integration.spec.js#gives a tenant that predates the seeds the seven system activity types
05 Reconciliation reports deployment failurefailureunitnegativetest
Proves
BR-CAP-PFM-TNL-009-05
Preconditions
One workspace fails while others can be reconciled.
Steps
Complete the deployment response.
Expected
The failure names that workspace and its error within the response limit.
Data
Use the run-owned records and caller contexts created by the cited tests; use their provider and clock seams only where declared.
Bound to
services-crm:modules/tenant-lifecycle/tests/unit/lifecycle/baseline-reconciliation.spec.js#fails the deployment when any tenant failed, naming the tenant and its message
services-crm:modules/tenant-lifecycle/tests/unit/lifecycle/baseline-reconciliation.spec.js#keeps a long failure message within the limit CloudFormation’s response allows
Source
services-crm:modules/tenant-lifecycle/tests/unit/lifecycle/baseline-reconciliation.spec.js#fails the deployment when any tenant failed, naming the tenant and its message
06 Baseline journey proves configuration parityinteractionapitest
Proves
AS-JNY-PFM-TNL-005-01
Preconditions
Old and new uncustomized CRM fixtures are available.
Steps
Reconcile the older workspace and compare baseline records.
Expected
The seed entries and default types match the newer fixture.
Data
Use the run-owned records and caller contexts created by the cited tests; use their provider and clock seams only where declared.
Bound to
services-crm:modules/tenant-lifecycle/tests/integration/services/lifecycle/baseline-reconciliation.integration.spec.js#leaves an old tenant with exactly the seed ledger a tenant provisioned today holds
Source
services-crm:modules/tenant-lifecycle/tests/integration/services/lifecycle/baseline-reconciliation.integration.spec.js#leaves an old tenant with exactly the types a tenant provisioned today holds
07 Existing-workspace construction preserves status and successful workruleapitest
Proves
BR-CAP-PFM-TNL-009-07
Preconditions
An active workspace has no provisioning job; a second fixture already has a successful job.
Steps
Provision the first fixture, inspect its completed steps and business status, then invoke provisioning for the successful fixture.
Expected
The first fixture receives its missing work while retaining its status; the successful fixture returns its existing job without another submission.
Data
Use separate run-owned target and comparison workspace records created by the cited suite.
Bound to
services-platform:modules/tenants/tests/integration/services/provisioning/provision-existing-tenant.integration.spec.js#records one step per participant, the readiness check and the activation, all completed
services-platform:modules/tenants/tests/integration/services/provisioning/provision-existing-tenant.integration.spec.js#answers the same job and submits nothing when the latest provisioning succeeded
Source
services-platform:modules/tenants/tests/integration/services/provisioning/provision-existing-tenant.integration.spec.js#submits a provisioning job for a tenant that never had one; services-platform:modules/tenants/tests/integration/services/provisioning/provision-existing-tenant.integration.spec.js#records one step per participant, the readiness check and the activation, all completed; services-platform:modules/tenants/tests/integration/services/provisioning/provision-existing-tenant.integration.spec.js#leaves the tenant active at the status it had; services-platform:modules/tenants/tests/integration/services/provisioning/provision-existing-tenant.integration.spec.js#answers the same job and submits nothing when the latest provisioning succeeded
08 Remote initialization exposes seed selection limitsinteractionapinegativeproposed
Proves
BR-CAP-PFM-TNL-009-08
Preconditions
An existing active workspace has a remote participant with several seed sets.
Steps
Request initialization of one remote set and inspect the request passed to the lifecycle function and the resulting default records.
Expected
The remote invocation uses provisioning without forwarding the selected sets. Its result is checked against the participant baseline rather than assuming local set filtering.
Data
Create a separate run-owned workspace for each decision branch and an unaffected comparison workspace. Use a controlled clock, paused task or injected fault at the boundary named in the scenario.
Source
rhythm-v2-docs:specs/platform/tenant-lifecycle/planning/capabilities/CAP-PFM-TNL-009-bring-every-existing-workspace-up-to-the-current-baseline.md; rhythm-v2-docs:specs/platform/tenant-lifecycle/planning/capabilities/CAP-PFM-TNL-007-register-each-application-s-part-in-a-workspace-s-life.md; rhythm-v2-docs:specs/platform/tenant-lifecycle/planning/capabilities/CAP-PFM-TNL-002-open-a-new-workspace-only-when-every-application-reports-it.md; rhythm-v2-docs:specs/platform/tenant-lifecycle/planning/capabilities/CAP-PFM-TNL-008-give-every-workspace-its-default-configuration-exactly-once.md

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.