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.
A later edit changes the approved job's result. An edit after restoration planning remains protected. Reject policy preserves a staff correction in a later delivery. The interaction scenarios use the related capabilities' rule references and identify the shared fixture and observable outcome.
Coverage
Rulecovered
Transitiongap: FND-PFM-DJE-066
Validationcovered
Permissiongap: FND-PFM-DJE-066
Edgecovered
Failuregap: FND-PFM-DJE-066
Boundarycovered
Concurrencycovered
Invariantgap: FND-PFM-DJE-066
Interactioncovered
Test Scenarios
10 scenarios proving CAP-PFM-DJE-006; 6 bound to an existing test.
Validate a three-contact change and then edit one contact as a colleague.
Steps
[
{
"do": "Approve the job.",
"expect": "The edited contact is reported as a conflict and preserved; the others change.",
"provenance": "test",
"source": "services-crm:modules/data-jobs/tests/integration/services/jobs/contact-update-versions.integration.spec.js#freezes the version of each of the three contacts on the validated job, by item position"
}
]
Expected
The edited contact is reported as a conflict and preserved; the others change.
Select 35 contacts and edit one between preview and approval.
Steps
[
{
"do": "Apply, choose Revalidate Conflicts and approve the new preview.",
"expect": "The first run reports 34 applied and a named, timed conflict; the reviewed correction then applies.",
"provenance": "test",
"source": "react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0103.spec.ts#DJE-ACC-0103"
}
]
Expected
The first run reports 34 applied and a named, timed conflict; the reviewed correction then applies.
Prepare input with an expected version older than its record.
Steps
[
{
"do": "Process the change.",
"expect": "The version conflict identifies the last editor and time without exposing field values.",
"provenance": "proposed",
"source": "services-crm:docs/data-jobs.md#What each contact's outcome can be"
}
]
Expected
The version conflict identifies the last editor and time without exposing field values.
Have a colleague set the exact value the job requests.
Steps
[
{
"do": "Apply the saved job.",
"expect": "The contact reports applied with unchanged detail.",
"provenance": "test",
"source": "services-crm:modules/data-jobs/tests/integration/services/jobs/contact-update-versions.integration.spec.js#applies the contact whose colleague made the very change the job asks for, rather than calling it a conflict"
}
]
Expected
The contact reports applied with unchanged detail.
[
{
"do": "Revalidate it, attempt revalidation of the unfinished correction, and retry the original.",
"expect": "The first call creates a linked single-record validation; the other calls are refused.",
"provenance": "test",
"source": "services-crm:modules/data-jobs/tests/integration/services/jobs/contact-update-versions.integration.spec.js#makes the revalidation a new validation of the one conflicted contact, linked to the job it corrects"
}
]
Expected
The first call creates a linked single-record validation; the other calls are refused.
Edit a keyed record after its previous producer delivery.
Steps
[
{
"do": "Send new input under reject and then overwrite policies.",
"expect": "Reject preserves the edit as a conflict; overwrite applies the producer’s input.",
"provenance": "test",
"source": "macroservice-libraries:packages/data-jobs/src/tests/integration/keyed-data-jobs.integration.spec.ts#refuses the delivery as a conflict and leaves the record alone"
}
]
Expected
Reject preserves the edit as a conflict; overwrite applies the producer’s input.
[
{
"do": "Deliver patches at revision 9 and at revision 10.",
"expect": "The older patch is stale; the equal-revision patch can apply another part of that revision.",
"provenance": "test",
"source": "macroservice-libraries:packages/data-jobs/src/tests/integration/keyed-patches.integration.spec.ts#skips a late patch file whose revision is older than the one applied, and writes nothing; macroservice-libraries:packages/data-jobs/src/tests/integration/keyed-patches.integration.spec.ts#applies a patch of the revision already applied, which is a further part of that revision (a second pass)"
}
]
Expected
The older patch is stale; the equal-revision patch can apply another part of that revision.
Prepare two contacts and a validated title change.
Steps
[
{
"do": "Edit one contact after preview and approve the original fingerprint.",
"expect": "The edited contact remains intact with a conflict while the other receives the saved title.",
"provenance": "proposed",
"source": "services-crm:modules/data-jobs/tests/integration/services/jobs/contact-data-jobs.integration.spec.js#changes nothing while it is validating; services-crm:modules/data-jobs/tests/integration/services/jobs/contact-data-jobs.integration.spec.js#refuses an apply of the validated update whose digest is not the one the validation answered; services-crm:modules/data-jobs/tests/integration/services/jobs/contact-update-versions.integration.spec.js#skips the contact that changed after the validation as a named conflict; services-crm:modules/data-jobs/services/operations/contact-update.ts:prevalidate"
}
]
Expected
The edited contact remains intact with a conflict while the other receives the saved title.
Data
Prepare two contacts and a validated title change.
Complete an update and plan its restoration using current versions.
Steps
[
{
"do": "Edit a reversible contact after planning and approve the restoration.",
"expect": "The later edit survives as a changed-since conflict while other reversible contacts are restored.",
"provenance": "proposed",
"source": "services-crm:modules/data-jobs/tests/integration/services/jobs/contact-update-versions.integration.spec.js#skips the contact that changed after the validation as a named conflict; services-crm:modules/data-jobs/services/operations/contact-update.ts:prevalidate; services-crm:modules/data-jobs/tests/integration/services/jobs/contact-update-rollback.integration.spec.js#says which field changed since the job and when, without saying what it was changed to; macroservice-libraries:packages/data-jobs/src/tests/integration/rollback-and-retry.integration.spec.ts#refuses a rollback plan with an unversioned item, and writes no rollback job"
}
]
Expected
The later edit survives as a changed-since conflict while other reversible contacts are restored.
Data
Complete an update and plan its restoration using current versions.
Import a revisioned keyed record and make a staff correction.
Steps
[
{
"do": "Send a newer producer revision under reject policy and inspect its mapping and record.",
"expect": "The delivery conflicts and preserves the staff correction; the producer-written version does not adopt the staff version.",
"provenance": "proposed",
"source": "macroservice-libraries:packages/data-jobs/src/tests/integration/keyed-data-jobs.integration.spec.ts#refuses the delivery as a conflict and leaves the record alone; macroservice-libraries:packages/data-jobs/README.md#Keyed writes and the ID crosswalk; services-crm:modules/data-jobs/tests/integration/services/operations/record-imports.integration.spec.js#skips every record of the same file delivered a second time, rather than making a second organization; macroservice-libraries:packages/data-jobs/src/tests/integration/keyed-data-jobs.integration.spec.ts#writes no crosswalk row for an item it refused, so the corrected delivery of that key is a create"
}
]
Expected
The delivery conflicts and preserves the staff correction; the producer-written version does not adopt the staff version.
Data
Import a revisioned keyed record and make a staff correction.