---
id: ATS-CRM-REG-014
scope: CAP-CRM-REG-014
product_area: crm
module: regions
revision: 3
status: proposed
approved_by: null
approved_at: null
source_sha:
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
scenarios:
  - id: ATS-CRM-REG-014-01
    title: Bulk work requires both regional keys
    level: browser
    proves:
      - BR-CAP-CRM-REG-014-01
    preconditions: A user-tier coordinator and an administrator can attempt submission.
    steps: Submit a regional file as each persona.
    expected: The coordinator’s import requests are denied and the fully authorized submission is accepted.
    negative: true
    data_needs: A short regional import input file.
    bound_to:
      - TST-CRM-REG-067
      - TST-CRM-REG-023
    provenance: test
    source: >-
      services-crm:tests/unit/regions-authorization.spec.ts#the data jobs of regions, which are the
      configuration data-job routes under /regions › requires crm.regions.bulk AND crm.regions.update of
      every one of them, which the read key alone does not give
    category: permission
    test_assertions:
      - >-
        services-crm:tests/unit/regions-authorization.spec.ts#the data jobs of regions, which are the
        configuration data-job routes under /regions › requires crm.regions.bulk AND crm.regions.update
        of every one of them, which the read key alone does not give
      - >-
        react-console:acceptance/crm/playwright/journeys/data-operations/CRM-ACC-0649.spec.ts#CRM-ACC-0649
  - id: ATS-CRM-REG-014-02
    title: The hosted import surface contains twelve operations
    level: unit
    proves:
      - BR-CAP-CRM-REG-014-02
    preconditions: The route catalogue is available.
    steps: Enumerate regional data-job operations.
    expected: 'The twelve declared submission, inspection and control operations are present.'
    negative: false
    data_needs: Published regional route metadata.
    bound_to:
      - TST-CRM-REG-067
    provenance: test
    source: >-
      services-crm:tests/unit/regions-authorization.spec.ts#the data jobs of regions, which are the
      configuration data-job routes under /regions › publishes the twelve routes a job of regions has:
      the submission, the list, the status, the lookup by source key, the two pages, the apply, the four
      control actions and the revalidation of conflicts
    category: rule
    test_assertions:
      - >-
        services-crm:tests/unit/regions-authorization.spec.ts#the data jobs of regions, which are the
        configuration data-job routes under /regions › publishes the twelve routes a job of regions has:
        the submission, the list, the status, the lookup by source key, the two pages, the apply, the
        four control actions and the revalidation of conflicts
  - id: ATS-CRM-REG-014-03
    title: Imported rows share regional validation
    level: api
    proves:
      - BR-CAP-CRM-REG-014-03
    preconditions: >-
      A file contains a valid region and rows with invalid identifier, blank name and conflicting
      workspace.
    steps: Submit and apply the file.
    expected: The valid row is persisted and invalid rows are rejected through the regional checks.
    negative: true
    data_needs: Four import rows covering valid and refused inputs.
    bound_to: []
    provenance: proposed
    source: FND-CRM-REG-021
    category: validation
  - id: ATS-CRM-REG-014-04
    title: Imported retirement uses catalogue and policy checks
    category: interaction
    level: api
    proves:
      - BR-CAP-CRM-REG-014-01
      - BR-CAP-CRM-REG-014-03
      - BR-CAP-CRM-REG-002-07
    preconditions: An enabled policy targets a region whose definition is imported for replacement.
    steps: >-
      Submit and apply a versioned retirement row with both import keys, then read the region and
      settings; repeat submission with read-only authority.
    expected: >-
      Authorized application persists retirement and raises need through ordinary regional persistence;
      read-only submission is refused.
    negative: false
    data_needs: An enabled policy targets a region whose definition is imported for replacement.
    bound_to: []
    provenance: proposed
    source: WF-CRM-REG-005
    exercises:
      - CAP-CRM-REG-001
      - CAP-CRM-REG-013
      - CAP-CRM-REG-014
  - id: ATS-CRM-REG-014-05
    title: Partial import application retains earlier committed rows
    category: failure
    level: api
    proves:
      - BR-CAP-CRM-REG-014-03
      - BR-CAP-CRM-REG-014-06
    preconditions: A regional file has two valid rows and a later application failure.
    steps: >-
      Apply the file through the hosted engine and inspect its result and each row through regional
      reads.
    expected: >-
      Earlier committed definitions remain present and failed application has no regional compensating
      deletion.
    negative: true
    data_needs: A regional file has two valid rows and a later application failure.
    bound_to: []
    provenance: proposed
    source: WF-CRM-REG-005
evidence:
  - >-
    services-crm: Examined the pinned regional implementation, its declared constraints and the
    supporting records.
  - 'react-console: Examined the pinned regional configuration surfaces and their available test evidence.'
  - 'services-crm:tests/unit/regions-authorization.spec.ts'
  - 'react-console:acceptance/crm/playwright/journeys/data-operations/CRM-ACC-0649.spec.ts'
coverage:
  rule: covered
  transition: 'gap: FND-CRM-REG-059'
  validation: covered
  permission: covered
  edge: 'gap: FND-CRM-REG-059'
  failure: covered
  boundary: 'gap: FND-CRM-REG-059'
  concurrency: 'gap: FND-CRM-REG-059'
  invariant: 'gap: FND-CRM-REG-059'
  interaction: covered
---

# Import a catalogue of regions: Capability Test Specification

## Coverage

Each row links a required rule to its authored proof. A covered category records a specification; executable and remaining variant gaps stay in the finding register.

| Rule | Proved By |
|---|---|
| `BR-CAP-CRM-REG-014-01` | `ATS-CRM-REG-014-01`, `ATS-CRM-REG-014-04` |
| `BR-CAP-CRM-REG-014-02` | `ATS-CRM-REG-014-02` |
| `BR-CAP-CRM-REG-014-03` | `ATS-CRM-REG-014-03`, `ATS-CRM-REG-014-04`, `ATS-CRM-REG-014-05` |

## Interactions With Related Capabilities

Imported retirement uses catalogue and policy checks. The interaction scenario connects maintain the region catalogue, restrict regional work to authorised users with this capability. Cross-workflow expectations are proposed where no executable binding is present.
