Skip to content

ATS-PFM-DJE-009Complete selected-record changes from a list dialog: Capability Test Specification

Markdown

ATS-PFM-DJE-009

Complete selected-record changes from a list dialog: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaPlatformModuleData Job EngineRevision2

Read atreact-console baf6dae3services-crm a8d1364fservices-platform ad3f6a65

Coverage

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

Test Scenarios

14 scenarios proving CAP-PFM-DJE-009; 10 bound to an existing test.

01 Selected-field updates remain visible as jobsrulebrowsertest
Proves
BR-CAP-PFM-DJE-009-02
Preconditions
Prepare selections of twelve and 35 contacts.
Steps
[ { "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.
Data
Prepared contacts.
Bound to
Source
react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0100.spec.ts#DJE-ACC-0100
02 Large selections transfer to the wizardboundarybrowsernegativetest
Proves
BR-CAP-PFM-DJE-009-01
Preconditions
Select 600 contacts.
Steps
[ { "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.
Data
Six hundred contacts.
Bound to
Source
react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0110.spec.ts#DJE-ACC-0110
03 Invalid typed input is refused before writesvalidationbrowsernegativetest
Proves
BR-CAP-PFM-DJE-009-03
Preconditions
Provide number, date and option fields.
Steps
[ { "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.
Data
Custom-field definitions.
Bound to
Source
react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0104.spec.ts#DJE-ACC-0104
04 Custom values use their proper storageinvariantbrowsertest
Proves
BR-CAP-PFM-DJE-009-04
Preconditions
Define a text field for contacts.
Steps
[ { "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.
Data
A contact custom-field definition.
Bound to
Source
react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0102.spec.ts#DJE-ACC-0102
05 Query selection leaves outside records intactboundarybrowsertest
Proves
BR-CAP-PFM-DJE-009-05
Preconditions
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.
Data
A saved query and its comparison record.
Bound to
Source
react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0101.spec.ts#DJE-ACC-0101
06 Joined rows do not multiply job targetsedgebrowsertest
Proves
BR-CAP-PFM-DJE-009-06
Preconditions
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.
Data
A joined query.
Bound to
Source
react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0114.spec.ts#DJE-ACC-0114
07 Repeated clicks create one jobconcurrencybrowsertest
Proves
BR-CAP-PFM-DJE-009-07
Preconditions
Select fourteen contacts.
Steps
[ { "do": "Double-click Apply.", "expect": "One job and accepted apply produce one change revision per contact.", "provenance": "test", "source": "react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0112.spec.ts#DJE-ACC-0112" } ]
Expected
One job and accepted apply produce one change revision per contact.
Data
No additional fixture is needed.
Bound to
Source
react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0112.spec.ts#DJE-ACC-0112
08 Closing the dialog preserves submitted worktransitionbrowsertest
Proves
BR-CAP-PFM-DJE-009-08
Preconditions
Select 200 contacts.
Steps
[ { "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.
Data
Two hundred contacts.
Bound to
Source
react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0113.spec.ts#DJE-ACC-0113
09 Bulk actions require the relevant keypermissionbrowsernegativetest
Proves
BR-CAP-PFM-DJE-009-09
Preconditions
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.
Data
A role denying bulk permission.
Bound to
Source
react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0108.spec.ts#DJE-ACC-0108
10 Delete sends approval only for matching textvalidationbrowsernegativetest
Proves
BR-CAP-PFM-DJE-009-10
Preconditions
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.
Data
Records with locks and dependants.
Bound to
Source
react-console:acceptance/data-jobs/playwright/journeys/dialogs/DJE-ACC-0105.spec.ts#DJE-ACC-0105
11 Dialog input becomes a durable inspectable jobinteractionbrowserproposed
Proves
BR-CAP-PFM-DJE-001-04 BR-CAP-PFM-DJE-009-02 BR-CAP-PFM-DJE-009-08
Preconditions
Select contacts on a record list.
Steps
[ { "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.
Data
Select contacts on a record list.
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
12 Dialog approval is tied to its saved previewinteractionbrowserproposed
Proves
BR-CAP-PFM-DJE-002-02 BR-CAP-PFM-DJE-009-07 BR-CAP-PFM-DJE-009-10
Preconditions
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.
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
13 The delete dialog uses the counted engine approvalinteractionbrowserproposed
Proves
BR-CAP-PFM-DJE-007-02 BR-CAP-PFM-DJE-007-03 BR-CAP-PFM-DJE-009-10
Preconditions
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.
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
14 Reclassification makes a previously blocked type deletableinteractionbrowserproposed
Proves
BR-CAP-PFM-DJE-009-02 BR-CAP-PFM-DJE-010-01 BR-CAP-PFM-DJE-010-03 BR-CAP-PFM-DJE-010-07
Preconditions
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.
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

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.