Skip to content

ATS-PFM-DJE-018Enable product records to use the shared job engine: Capability Test Specification

Markdown

ATS-PFM-DJE-018

Enable product records to use the shared job engine: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaPlatformModuleData Job EngineRevision2

Read atmacroservice-libraries 54536a44services-platform ad3f6a65services-crm a8d1364fservices-membership 5994c270

Coverage

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

Test Scenarios

10 scenarios proving CAP-PFM-DJE-018; 5 bound to an existing test.

01 Invalid operation declarations fail initializationvalidationunitnegativetest
Proves
BR-CAP-PFM-DJE-018-01
Preconditions
Prepare declarations without versions and deletes declaring writable fields or rollback.
Steps
[ { "do": "Initialize each operation.", "expect": "Every invalid declaration is refused.", "provenance": "test", "source": "macroservice-libraries:packages/data-jobs/src/validate-data-job-request.spec.ts#refuses a declaration with no contract version, which could accept no job at all" } ]
Expected
Every invalid declaration is refused.
Data
No additional fixture is needed.
Bound to
Source
macroservice-libraries:packages/data-jobs/src/validate-data-job-request.spec.ts#refuses a declaration with no contract version, which could accept no job at all
02 Workspace policies constrain consumer persistenceinvariantapinegativetest
Proves
BR-CAP-PFM-DJE-018-02
Preconditions
Create engine tables using the shared contracts.
Steps
[ { "do": "Attempt foreign-workspace writes and queue claims.", "expect": "Writes are refused and claims contain only the current workspace’s rows.", "provenance": "test", "source": "macroservice-libraries:packages/data-jobs/src/tests/integration/tenant-isolation.integration.spec.ts#refuses a row written into another tenant, whatever the statement says" } ]
Expected
Writes are refused and claims contain only the current workspace’s rows.
Data
A disposable database fixture.
Bound to
Source
macroservice-libraries:packages/data-jobs/src/tests/integration/tenant-isolation.integration.spec.ts#refuses a row written into another tenant, whatever the statement says
03 Field definitions use metadata behaviorruleapinegativetest
Proves
BR-CAP-PFM-DJE-018-03
Preconditions
Prepare definition input including an existing definition.
Steps
[ { "do": "Submit insert and upsert operations.", "expect": "Domain rules govern each write; insert refuses the existing definition and upsert updates it.", "provenance": "test", "source": "services-platform:modules/data-jobs/tests/integration/services/jobs/custom-field-data-jobs.integration.spec.js#writes the currency definition the metadata module’s own way, configuration and all" } ]
Expected
Domain rules govern each write; insert refuses the existing definition and upsert updates it.
Data
A field-definition dataset.
Bound to
Source
services-platform:modules/data-jobs/tests/integration/services/jobs/custom-field-data-jobs.integration.spec.js#writes the currency definition the metadata module’s own way, configuration and all
04 Supplied rule sets have explicit replacement behaviorruleapinegativeproposed
Proves
BR-CAP-PFM-DJE-018-04
Preconditions
Prepare lines with rules, omitted rules and a forward reference.
Steps
[ { "do": "Load the definitions, reset and load again.", "expect": "Supplied rules replace existing rules, omissions preserve them and the forward reference is refused.", "provenance": "proposed", "source": "services-platform:docs/data-jobs/platform-data-operations.md#1.1 A definition's rules (the package format)" } ]
Expected
Supplied rules replace existing rules, omissions preserve them and the forward reference is refused.
Data
A definition package.
Source
services-platform:docs/data-jobs/platform-data-operations.md#1.1 A definition's rules (the package format)
05 Lasting transient errors pause in-request processingfailureapinegativeproposed
Proves
BR-CAP-PFM-DJE-018-05
Preconditions
Inject a repeated failure in one Platform batch.
Steps
[ { "do": "Submit, clear the error and retry.", "expect": "The job pauses with transient-failure detail and finishes after recovery.", "provenance": "proposed", "source": "services-platform:docs/data-jobs/platform-data-operations.md#3. The batches run in the submitting request" } ]
Expected
The job pauses with transient-failure detail and finishes after recovery.
Data
Controllable failure injection.
Source
services-platform:docs/data-jobs/platform-data-operations.md#3. The batches run in the submitting request
06 Oversized Platform datasets are refusedboundaryapinegativeproposed
Proves
BR-CAP-PFM-DJE-018-06
Preconditions
Prepare 501 field-definition lines.
Steps
[ { "do": "Submit the dataset.", "expect": "The refusal identifies its record count and supported limit.", "provenance": "proposed", "source": "services-platform:modules/data-jobs/services/jobs/custom-field-data-jobs.ts" } ]
Expected
The refusal identifies its record count and supported limit.
Data
A field-definition dataset.
Source
services-platform:modules/data-jobs/services/jobs/custom-field-data-jobs.ts
07 Platform submission requires domain and bulk authoritypermissionapinegativetest
Proves
BR-CAP-PFM-DJE-018-07
Preconditions
Prepare callers with create access alone and with create plus bulk access.
Steps
[ { "do": "Submit under both identities.", "expect": "The first is refused and the fully authorized caller succeeds.", "provenance": "test", "source": "services-platform:modules/data-jobs/tests/integration/services/jobs/custom-field-data-jobs.integration.spec.js#refuses a caller who may create a definition but holds no bulk right" } ]
Expected
The first is refused and the fully authorized caller succeeds.
Data
Permission personas.
Bound to
Source
services-platform:modules/data-jobs/tests/integration/services/jobs/custom-field-data-jobs.integration.spec.js#refuses a caller who may create a definition but holds no bulk right
08 Custom-record validation accounts for neighboring file rowsedgeapinegativetest
Proves
BR-CAP-PFM-DJE-018-08
Preconditions
Prepare boats including a repeated hull number and invalid type.
Steps
[ { "do": "Load the dataset twice.", "expect": "Invalid lines have numbered refusals, eligible input applies and repeated eligible records report unchanged.", "provenance": "test", "source": "services-platform:modules/data-jobs/tests/integration/services/jobs/custom-object-data-jobs.integration.spec.js#refuses a hull number an earlier line of the same file holds, naming that line" } ]
Expected
Invalid lines have numbered refusals, eligible input applies and repeated eligible records report unchanged.
Data
A boat-record dataset.
Bound to
Source
services-platform:modules/data-jobs/tests/integration/services/jobs/custom-object-data-jobs.integration.spec.js#refuses a hull number an earlier line of the same file holds, naming that line
09 Operation declarations constrain submitted workinteractionapinegativeproposed
Proves
BR-CAP-PFM-DJE-001-06 BR-CAP-PFM-DJE-018-01 BR-CAP-PFM-DJE-018-07
Preconditions
Prepare a supported Platform field-definition operation and authorized and unauthorized callers.
Steps
[ { "do": "Submit a supported definition, an unsupported operation, and the supported input without bulk authority.", "expect": "Only the permitted declared operation creates work; the refused requests leave no definition or job.", "provenance": "proposed", "source": "services-crm:modules/data-jobs/tests/integration/services/jobs/contact-data-jobs.integration.spec.js#refuses an object type CRM performs no bulk operation on, naming what it does perform; macroservice-libraries:packages/data-jobs/src/validate-data-job-request.spec.ts#refuses a delete that declares patchable fields, which a delete never sets; services-platform:modules/data-jobs/tests/integration/services/jobs/custom-field-data-jobs.integration.spec.js#refuses a caller who may create a definition but holds no bulk right" } ]
Expected
Only the permitted declared operation creates work; the refused requests leave no definition or job.
Data
Prepare a supported Platform field-definition operation and authorized and unauthorized callers.
Source
services-crm:modules/data-jobs/tests/integration/services/jobs/contact-data-jobs.integration.spec.js#refuses an object type CRM performs no bulk operation on, naming what it does perform; macroservice-libraries:packages/data-jobs/src/validate-data-job-request.spec.ts#refuses a delete that declares patchable fields, which a delete never sets; services-platform:modules/data-jobs/tests/integration/services/jobs/custom-field-data-jobs.integration.spec.js#refuses a caller who may create a definition but holds no bulk right
10 Platform datasets use the same domain authority as direct jobsinteractionapinegativeproposed
Proves
BR-CAP-PFM-DJE-016-07 BR-CAP-PFM-DJE-016-12 BR-CAP-PFM-DJE-018-07 BR-CAP-PFM-DJE-018-08
Preconditions
Register a package with custom definitions, records and associations and prepare limited and authorized staff contexts.
Steps
[ { "do": "Start under insufficient domain authority, then under authorized authority and inspect each local job.", "expect": "The refusal leaves the run unchanged; permitted local datasets use domain validation and preserve line-specific refusals.", "provenance": "proposed", "source": "services-platform:modules/data-jobs/tests/integration/services/runs/run-driver.integration.spec.js#forwards the staff caller’s own token with every call, and invents no identity of its own; services-platform:modules/data-jobs/services/runs/data-run-services.ts:DATA_RUN_SERVICES; services-platform:modules/data-jobs/tests/integration/services/jobs/custom-field-data-jobs.integration.spec.js#refuses a caller who may create a definition but holds no bulk right; services-platform:modules/data-jobs/tests/integration/services/jobs/custom-object-data-jobs.integration.spec.js#refuses a hull number an earlier line of the same file holds, naming that line" } ]
Expected
The refusal leaves the run unchanged; permitted local datasets use domain validation and preserve line-specific refusals.
Data
Register a package with custom definitions, records and associations and prepare limited and authorized staff contexts.
Source
services-platform:modules/data-jobs/tests/integration/services/runs/run-driver.integration.spec.js#forwards the staff caller’s own token with every call, and invents no identity of its own; services-platform:modules/data-jobs/services/runs/data-run-services.ts:DATA_RUN_SERVICES; services-platform:modules/data-jobs/tests/integration/services/jobs/custom-field-data-jobs.integration.spec.js#refuses a caller who may create a definition but holds no bulk right; services-platform:modules/data-jobs/tests/integration/services/jobs/custom-object-data-jobs.integration.spec.js#refuses a hull number an earlier line of the same file holds, naming that line

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.