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.
Dialog input becomes a durable inspectable job. Dialog approval is tied to its saved preview. The delete dialog uses the counted engine approval. Reclassification makes a previously blocked type deletable. The interaction scenarios use the related capabilities' rule references and identify the shared fixture and observable outcome.
Coverage
Rulecovered
Transitioncovered
Validationcovered
Permissioncovered
Edgecovered
Failuregap: FND-PFM-DJE-069
Boundarycovered
Concurrencycovered
Invariantcovered
Interactioncovered
Test Scenarios
14 scenarios proving CAP-PFM-DJE-009; 10 bound to an existing test.
01Selected-field updates remain visible as jobsrulebrowsertest
[
{
"do": "Preview and apply a field change, then inspect the job list and record history.",
"expect": "Selected records change and the named update job exposes supported rollback and history attribution.",
"provenance": "test",
"source": "react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0100.spec.ts#DJE-ACC-0100"
}
]
Expected
Selected records change and the named update job exposes supported rollback and history attribution.
[
{
"do": "Inspect Update Fields and Delete actions.",
"expect": "Update opens the wizard with the selection; Delete explains that the limit is exceeded.",
"provenance": "test",
"source": "react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0110.spec.ts#DJE-ACC-0110"
}
]
Expected
Update opens the wizard with the selection; Delete explains that the limit is exceeded.
[
{
"do": "Enter mismatched or unsupported values.",
"expect": "The refusal names the field and no contact changes.",
"provenance": "test",
"source": "react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0104.spec.ts#DJE-ACC-0104"
}
]
Expected
The refusal names the field and no contact changes.
[
{
"do": "Set its value for twelve selected contacts.",
"expect": "Each contact holds and displays the value under that custom field.",
"provenance": "test",
"source": "react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0102.spec.ts#DJE-ACC-0102"
}
]
Expected
Each contact holds and displays the value under that custom field.
Prepare a 120-contact saved query and a contact excluded from it.
Steps
[
{
"do": "Select all matching records and apply an update.",
"expect": "The matching records change; the outside contact retains its version.",
"provenance": "test",
"source": "react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0101.spec.ts#DJE-ACC-0101"
}
]
Expected
The matching records change; the outside contact retains its version.
Prepare eighteen result rows representing six contacts.
Steps
[
{
"do": "Run an update over those rows.",
"expect": "The job contains six records with one corresponding revision each.",
"provenance": "test",
"source": "react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0114.spec.ts#DJE-ACC-0114"
}
]
Expected
The job contains six records with one corresponding revision each.
[
{
"do": "Apply the update and close its dialog.",
"expect": "Data Imports shows completion and the 200 selected contacts change.",
"provenance": "test",
"source": "react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0113.spec.ts#DJE-ACC-0113"
}
]
Expected
Data Imports shows completion and the 200 selected contacts change.
Use a denied-bulk administrator and a read-only user.
Steps
[
{
"do": "Select explorer records and attempt backend submission.",
"expect": "Bulk actions are absent and the backend responds 403.",
"provenance": "test",
"source": "react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0108.spec.ts#DJE-ACC-0108"
}
]
Expected
Bulk actions are absent and the backend responds 403.
Select 37 contacts with two locks and three organizations with two dependency blocks.
Steps
[
{
"do": "Open deletion preview and enter incorrect, then correct, approval text.",
"expect": "The preview explains impact and blocks; incorrect text sends no request; correct approval removes only eligible records.",
"provenance": "test",
"source": "react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0105.spec.ts#DJE-ACC-0105"
}
]
Expected
The preview explains impact and blocks; incorrect text sends no request; correct approval removes only eligible records.
[
{
"do": "Preview and apply an update from the dialog, close the dialog, and inspect the job after completion.",
"expect": "Closing the dialog leaves the submitted change active and its recorded job remains inspectable.",
"provenance": "proposed",
"source": "services-crm:modules/data-jobs/tests/integration/services/jobs/contact-data-jobs.integration.spec.js#freezes the patch on every item, so a later apply writes what was submitted and not what is asked for then; react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0111.spec.ts#DJE-ACC-0111; react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0113.spec.ts#DJE-ACC-0113"
}
]
Expected
Closing the dialog leaves the submitted change active and its recorded job remains inspectable.
Open a contact deletion dialog with an eligible selection.
Steps
[
{
"do": "Enter incorrect approval text, verify no apply request, then approve the returned phrase and repeat the click.",
"expect": "Incorrect text sends no approval and the accepted click applies one saved preview.",
"provenance": "proposed",
"source": "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; react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0112.spec.ts#DJE-ACC-0112; react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0105.spec.ts#DJE-ACC-0105"
}
]
Expected
Incorrect text sends no approval and the accepted click applies one saved preview.
Data
Open a contact deletion dialog with an eligible selection.
Select eligible and blocked contacts from a record list.
Steps
[
{
"do": "Open Delete, review the preview, enter wrong text, then submit the returned phrase.",
"expect": "The dialog sends approval only for the matching phrase and only preview-eligible records are removed.",
"provenance": "proposed",
"source": "services-crm:modules/data-jobs/tests/integration/services/jobs/contact-delete.integration.spec.js#counts the rows each delete would take with it, per collection, as the contacts hold them; services-crm:modules/data-jobs/tests/integration/services/jobs/contact-delete.integration.spec.js#refuses an apply whose confirmation names another number of contacts; react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0105.spec.ts#DJE-ACC-0105"
}
]
Expected
The dialog sends approval only for the matching phrase and only preview-eligible records are removed.
Data
Select eligible and blocked contacts from a record list.
Create an obsolete type used by three contacts and an unused replacement type.
Steps
[
{
"do": "Inspect the usage block, change those contacts to the replacement through a selected-record job, then preview and approve type deletion.",
"expect": "The second preview permits deletion of the obsolete type; the replacement and reclassified contacts remain.",
"provenance": "proposed",
"source": "react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0111.spec.ts#DJE-ACC-0111; services-crm:modules/data-jobs/tests/integration/services/jobs/configuration-data-jobs.integration.spec.js#says both are blocked because they are in use; services-crm:modules/data-jobs/tests/integration/services/jobs/configuration-data-jobs.integration.spec.js#asks a person to type the number it would delete, not the number submitted; react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0106.spec.ts#DJE-ACC-0106"
}
]
Expected
The second preview permits deletion of the obsolete type; the replacement and reclassified contacts remain.
Data
Create an obsolete type used by three contacts and an unused replacement type.