Skip to content

FAS-PFM-DJE-04Imports from files and producer feeds: Feature Acceptance Suite

Markdown

FAS-PFM-DJE-04

Imports from files and producer feeds: Feature Acceptance Suite

Markdown
  • DocumentProposed
  • Product intentProposed

Product areaPlatformModuleData Job EngineRevision1

Read atservices-platform ad3f6a65macroservice-libraries 54536a44services-crm a8d1364fservices-membership 5994c270react-console baf6dae3

Scenarios

5 scenarios proving FEAT-PFM-DJE-04 as a whole.

01 A mapped file can be reconciled by its producer keys behaviour proposed
Exercises
CAP-PFM-DJE-011 CAP-PFM-DJE-012 CAP-PFM-DJE-013 CAP-PFM-DJE-014 CAP-PFM-DJE-015
Relies on
ATS-PFM-DJE-011-07 ATS-PFM-DJE-012-03 ATS-PFM-DJE-013-01 ATS-PFM-DJE-014-01 ATS-PFM-DJE-015-01
Preconditions
Prepare a small CSV of keyed contacts with typed phone columns and one invalid address.
Steps
[object Object]
Expected
Valid rows resolve to saved contacts with their mapped details; the invalid creation has no destination or mapping.
Data
Prepare a small CSV of keyed contacts with typed phone columns and one invalid address.
Source
services-platform:modules/data-jobs/tests/integration/services/uploads/upload-sessions.integration.spec.js#refuses a second completion of a session that is already completed; macroservice-libraries:packages/data-jobs/src/tests/integration/keyed-data-jobs.integration.spec.ts#creates the record and writes one crosswalk row, then updates that record and still has one row; services-crm:modules/data-jobs/tests/integration/services/operations/spreadsheet-columns.integration.spec.js#applies both rows; services-crm:modules/data-jobs/tests/e2e/bulk-data-jobs.e2e.spec.js#refuses an upload of another tenant with 400, saying only that it was not found; services-crm:modules/data-jobs/tests/integration/services/jobs/records-by-source-key.integration.spec.js#answers each key found with its record id, in the order the keys were asked
02 A staff correction changes a later feed's reconciliation interactionnegative proposed
Exercises
CAP-PFM-DJE-012 CAP-PFM-DJE-014 CAP-PFM-DJE-015
Relies on
ATS-PFM-DJE-012-02 ATS-PFM-DJE-014-01 ATS-PFM-DJE-015-01
Preconditions
Load a revisioned organization and correct it manually.
Steps
[object Object]
Expected
The job reports conflict and lookup returns the staff-corrected current record.
Data
Load a revisioned organization and correct it manually.
Source
macroservice-libraries:packages/data-jobs/src/tests/integration/keyed-data-jobs.integration.spec.ts#skips a delivery of a revision already applied, which is what a rerun of yesterday’s file is; services-crm:modules/data-jobs/tests/e2e/bulk-data-jobs.e2e.spec.js#refuses an upload of another tenant with 400, saying only that it was not found; services-crm:modules/data-jobs/tests/integration/services/jobs/records-by-source-key.integration.spec.js#answers each key found with its record id, in the order the keys were asked
03 Retained dependent input completes after a parent arrives lifecyclenegative proposed
Exercises
CAP-PFM-DJE-011 CAP-PFM-DJE-012 CAP-PFM-DJE-014 CAP-PFM-DJE-015
Relies on
ATS-PFM-DJE-012-04 ATS-PFM-DJE-014-01 ATS-PFM-DJE-015-01
Preconditions
Complete a file containing a branch whose head office is absent.
Steps
[object Object]
Expected
The branch first remains blocked and then resolves to its saved parent without reuploading its input.
Data
Complete a file containing a branch whose head office is absent.
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; services-crm:modules/data-jobs/tests/e2e/bulk-data-jobs.e2e.spec.js#refuses an upload of another tenant with 400, saying only that it was not found; services-crm:modules/data-jobs/tests/integration/services/jobs/records-by-source-key.integration.spec.js#answers each key found with its record id, in the order the keys were asked
04 Completed foreign input grants no access to a file job permission proposed
Exercises
CAP-PFM-DJE-011 CAP-PFM-DJE-012 CAP-PFM-DJE-014 CAP-PFM-DJE-015
Relies on
ATS-PFM-DJE-011-09 ATS-PFM-DJE-014-01 ATS-PFM-DJE-015-05
Preconditions
Complete an upload in one workspace and prepare an authorized caller in another.
Steps
[object Object]
Expected
The import exposes no foreign upload and the lookup exposes no foreign records.
Data
Complete an upload in one workspace and prepare an authorized caller in another.
Source
services-platform:modules/data-jobs/tests/integration/services/uploads/upload-sessions.integration.spec.js#answers nothing about where the file is going: no bucket, no key, no S3 upload id; services-crm:modules/data-jobs/tests/e2e/bulk-data-jobs.e2e.spec.js#refuses an upload of another tenant with 400, saying only that it was not found; services-crm:modules/data-jobs/tests/integration/services/jobs/records-by-source-key.integration.spec.js#looks a key up under its own object type only: a contact key is not an organization
05 Repeating a feed changes neither mappings nor detail preferences regression proposed
Exercises
CAP-PFM-DJE-012 CAP-PFM-DJE-013 CAP-PFM-DJE-014 CAP-PFM-DJE-015
Relies on
ATS-PFM-DJE-012-02 ATS-PFM-DJE-013-02 ATS-PFM-DJE-014-03 ATS-PFM-DJE-015-01
Preconditions
Complete a revisioned multi-chunk contact file with repeated preferred and typed phone values.
Steps
[object Object]
Expected
The replay reports duplicate input, keeps one destination per existing key and preserves the saved preferred detail.
Data
Complete a revisioned multi-chunk contact file with repeated preferred and typed phone values.
Source
macroservice-libraries:packages/data-jobs/src/tests/integration/keyed-data-jobs.integration.spec.ts#skips a delivery of a revision already applied, which is what a rerun of yesterday’s file is; services-crm:modules/data-jobs/tests/integration/services/operations/spreadsheet-columns.integration.spec.js#makes the preferred e-mail value that repeats the personal one the first address, the personal one, ahead of the work one; macroservice-libraries:packages/data-jobs/src/chunk-plan.spec.ts#closes the chunk when one more item would pass the item limit; services-crm:modules/data-jobs/tests/integration/services/jobs/records-by-source-key.integration.spec.js#answers each key found with its record id, in the order the keys were asked

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.