The structured coverage rows link required rules to their scenarios. A covered category has a defined check; executable coverage and successful execution require separate evidence. The category map keeps incomplete lifecycle matrices and other missing checks visible as findings.
Cancellation accounts for settled and abandoned work. Applied restoration prevents reopening original blocked work. Dependency arrival makes retained input retryable. The interaction scenarios use the related capabilities' rule references and identify the shared fixture and observable outcome.
Coverage
Rulegap: FND-PFM-DJE-064
Transitiongap: FND-PFM-DJE-064
Validationgap: FND-PFM-DJE-064
Permissioncovered
Edgecovered
Failurecovered
Boundarygap: FND-PFM-DJE-064
Concurrencycovered
Invariantgap: FND-PFM-DJE-064
Interactioncovered
Test Scenarios
10 scenarios proving CAP-PFM-DJE-004; 6 bound to an existing test.
01Final-state transitions are constrainedtransitionunitnegativetest
[
{
"do": "Check outgoing transitions from every final state.",
"expect": "Only the allowed blocked-item retry can leave a completed state.",
"provenance": "test",
"source": "macroservice-libraries:packages/data-jobs/src/data-job-states.spec.ts#leaves every final state with nowhere to go, but for the retry of blocked items the plan allows"
}
]
Expected
Only the allowed blocked-item retry can leave a completed state.
[
{
"do": "Request cancellation during processing.",
"expect": "The batch settles, further work stops, and cancelled totals include unattempted items.",
"provenance": "test",
"source": "services-crm:modules/data-jobs/tests/integration/services/jobs/contact-data-jobs.integration.spec.js#ends the job cancelled, not failed, once the batch it waited for has finished"
}
]
Expected
The batch settles, further work stops, and cancelled totals include unattempted items.
[
{
"do": "Resume its processing.",
"expect": "The job proceeds to completion.",
"provenance": "test",
"source": "macroservice-libraries:packages/data-jobs/src/tests/integration/bulk-data-jobs.integration.spec.ts#holds a job paused before its source was read, and runs it to the end once resumed"
}
]
Prepare a completed job with blocked children and another with rejections.
Steps
[
{
"do": "Load the missing parent and retry each job.",
"expect": "The children apply; the rejection-only job refuses retry.",
"provenance": "test",
"source": "macroservice-libraries:packages/data-jobs/src/tests/integration/keyed-data-jobs.integration.spec.ts#blocks the child, and a retry after the parent is loaded applies it and finishes the job"
}
]
Expected
The children apply; the rejection-only job refuses retry.
Prepare a job with blocked items and an applied rollback.
Steps
[
{
"do": "Invoke retry on the original job.",
"expect": "The service refuses retry after rollback.",
"provenance": "test",
"source": "macroservice-libraries:packages/data-jobs/src/tests/integration/rollback-and-retry.integration.spec.ts#refuses to retry a job that has been rolled back, so its blocked rows are not written after the undo"
}
]
Use read-only, ordinary-user and administrator-without-bulk personas.
Steps
[
{
"do": "Inspect Data Imports and attempt job controls under each identity.",
"expect": "The controls are absent and backend calls are refused.",
"provenance": "proposed",
"source": "react-console:acceptance/crm/playwright/journeys/data-operations/CRM-ACC-0664.spec.ts#CRM-ACC-0664"
}
]
Expected
The controls are absent and backend calls are refused.
Prepare a file job whose workflow failed after partial admission.
Steps
[
{
"do": "Invoke failure handling twice.",
"expect": "The first call fails the job and abandons unstarted work; the repeat adds no changes.",
"provenance": "test",
"source": "services-crm:modules/data-jobs/tests/integration/services/jobs/bulk-data-job-failure.integration.spec.js#fails the data job, so its status read answers failed and a Data Run polling it stops"
}
]
Expected
The first call fails the job and abandons unstarted work; the repeat adds no changes.
Prepare a multi-batch job and hold one batch in flight.
Steps
[
{
"do": "Cancel while that batch is active, let it settle, and inspect receipts and unattempted positions.",
"expect": "The active batch may commit once; later batches do not start and the job settles cancelled with unattempted work counted.",
"provenance": "proposed",
"source": "services-crm:modules/data-jobs/tests/integration/services/queue/data-job-worker.integration.spec.js#changes each contact once between them, whichever delivery got there first; services-crm:modules/data-jobs/tests/integration/services/jobs/contact-data-jobs.integration.spec.js#ends the job cancelled, not failed, once the batch it waited for has finished"
}
]
Expected
The active batch may commit once; later batches do not start and the job settles cancelled with unattempted work counted.
Data
Prepare a multi-batch job and hold one batch in flight.
Finish an update with reversible changes and blocked input.
Steps
[
{
"do": "Plan a restoration, verify planning alone leaves retry available, apply the restoration, and attempt retry of the original.",
"expect": "Only application of restoration prevents later retry; restored values stay intact.",
"provenance": "proposed",
"source": "macroservice-libraries:packages/data-jobs/src/tests/integration/rollback-and-retry.integration.spec.ts#refuses to retry a job that has been rolled back, so its blocked rows are not written after the undo; services-crm:modules/data-jobs/tests/integration/services/jobs/contact-update-rollback.integration.spec.js#plans it already validated, because planning a rollback IS validating it; macroservice-libraries:packages/data-jobs/README.md#Rolling a job back"
}
]
Expected
Only application of restoration prevents later retry; restored values stay intact.
Data
Finish an update with reversible changes and blocked input.
[
{
"do": "Inspect the blocked result, load the parent, and retry the child job without another upload.",
"expect": "The retained child input applies after its parent exists without duplicating earlier successful writes.",
"provenance": "proposed",
"source": "macroservice-libraries:packages/data-jobs/src/tests/integration/keyed-data-jobs.integration.spec.ts#refuses to retry a job whose refusals are not blocked items, because correcting records is a new job; macroservice-libraries:packages/data-jobs/src/tests/integration/keyed-data-jobs.integration.spec.ts#blocks the child, and a retry after the parent is loaded applies it and finishes the job"
}
]
Expected
The retained child input applies after its parent exists without duplicating earlier successful writes.