Skip to content

ATS-PFM-INT-016Keep a shared catalogue of customization points and events: Capability Test Specification

Markdown

ATS-PFM-INT-016

Keep a shared catalogue of customization points and events: 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-082
  • Transition covered
  • Validation covered
  • Permission covered
  • Edge covered
  • Failure gap: FND-PFM-INT-082
  • Boundary covered
  • Concurrency gap: FND-PFM-INT-082
  • Invariant gap: FND-PFM-INT-082
  • Interaction covered

Test Scenarios

9 scenarios proving CAP-PFM-INT-016; 5 bound to an existing test.

01 Declaration errors reject the entire fragmentvalidationapinegativetest
Proves
BR-CAP-PFM-INT-016-01
Preconditions
Construct a declaration for every invalid condition.
Steps
Register each malformed fragment.
Expected
Validation identifies its path and saves no registry records.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/extensions/tests/integration/services/registration/register-service-extensions.integration.spec.js#refuses a malformed fragment as ObjectInvalid, naming the path
02 Registry keys retain their application ownerboundaryapinegativetest
Proves
BR-CAP-PFM-INT-016-02
Preconditions
A pricing customization point is registered to Commerce.
Steps
Claim its key from another service and subscribe to an unknown event.
Expected
Both requests refuse and the owned point remains unchanged.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/extensions/tests/integration/services/registration/register-service-extensions.integration.spec.js#refuses a key another service declares, naming that service
03 Enabled references protect omitted contract versionstransitionapitest
Proves
BR-CAP-PFM-INT-016-03
Preconditions
One version is used by an enabled binding and another only by a draft.
Steps
Register a declaration omitting both versions.
Expected
The enabled reference causes stamped deprecation and the draft-only reference permits retirement.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/extensions/tests/integration/services/registration/register-service-extensions.integration.spec.js#deprecates a version no longer declared that an enabled binding still names
04 Point retirement exposes orphaned configurationinteractionapitest
Proves
BR-CAP-PFM-INT-016-04
Preconditions
Two workspaces bind the same point.
Steps
Remove that point from registration and then declare it again.
Expected
Removal retires the point and counts every orphaned binding; re-declaration restores the point.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/extensions/tests/integration/services/registration/register-service-extensions.integration.spec.js#orphans every binding of a retired point, in every tenant, whatever its status
05 Neutral output distinguishes null from empty contentedgeapinegativeproposed
Proves
BR-CAP-PFM-INT-016-05
Preconditions
Valid declarations cover resolver, transformer, validator and action points.
Steps
Supply neutral outputs for all kinds, including null, an empty object and an empty array.
Expected
Resolver and transformer accept non-null values, while invalid kinds and null refuse.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Source
services-platform:modules/extensions/services/registration/registration-manifest.ts:neutral_output
06 Registry browse requires read authoritypermissionapinegativetest
Proves
BR-CAP-PFM-INT-016-07
Preconditions
One caller has only point-read and another has no permission.
Steps
List points and inspect point detail.
Expected
The reader obtains versions and workspace binding counts; the unauthorized caller is denied.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Bound to
Source
services-platform:modules/extensions/tests/e2e/extensions.e2e.spec.js#admits the catalogue with platform.extension-points.read alone
07 Application identity must be examined at registrationpermissionapinegativeproposed
Proves
BR-CAP-PFM-INT-016-09
Preconditions
An admitted invoking caller can reach a second application’s existing registry fragment.
Steps
Submit the second application name while omitting its points.
Expected
Record the observed replacement and orphaning as a security finding for Product and Architecture to resolve.
Data
Fixtures establishing the stated accounts, declarations and history in an isolated workspace.
Source
services-platform:modules/extensions/aws/lambda/REGISTRATION.handler.ts:registerExtensionsManifest
08 Exercise the complete customization registry standingtransitionapinegativeproposed
Proves
BR-CAP-PFM-INT-016-03 BR-CAP-PFM-INT-016-04
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-014-customization-registry-standing.md#transitions
09 Registry withdrawal orphans configured workinteractionapiproposed
Proves
BR-CAP-PFM-INT-016-04 BR-CAP-PFM-INT-017-07
Preconditions
Two workspaces have bindings to one registered customization point.
Steps
Omit the point from registration, redeclare it and attempt to activate an orphaned binding.
Expected
Withdrawal retires the point and orphans the bindings; redeclaration does not repair them and only disabling is available.
Data
Run-owned records and principals in an isolated workspace.
Source
services-platform:modules/extensions/tests/integration/services/registration/register-service-extensions.integration.spec.js#orphans every binding of a retired point, in every tenant, whatever its status,services-platform:modules/extensions/tests/unit/lifecycle.spec.js#allows draft to become enabled, shadow or disabled, enabled and shadow to trade places, disabled to return, and orphaned only to be disabled

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.