---
id: TST-CRM-ENT-776
title: Affiliations and roles acceptance
kind: browser-lifecycle
product_area: crm
module: entities
revision: 1
status: draft
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
repository: react-console
files:
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0170.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0171.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0172.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0173.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0174.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0175.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0176.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0177.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0178.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0179.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0180.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0181.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0182.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0183.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0184.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0185.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0186.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0187.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0188.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0189.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0190.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0191.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0192.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0193.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0194.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0195.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0196.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0197.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0198.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0199.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0200.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0201.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0202.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0203.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0204.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0205.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0206.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0207.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0208.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0209.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0210.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0211.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0212.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0213.spec.ts
  - acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0214.spec.ts
implements:
  - ATS-CRM-ENT-003-04
  - ATS-CRM-ENT-003-11
  - ATS-CRM-ENT-004-04
  - ATS-CRM-ENT-006-03
  - ATS-CRM-ENT-006-04
  - ATS-CRM-ENT-006-08
  - ATS-CRM-ENT-006-09
  - ATS-CRM-ENT-006-10
  - ATS-CRM-ENT-006-11
  - ATS-CRM-ENT-009-02
  - ATS-CRM-ENT-009-03
  - ATS-CRM-ENT-009-05
  - ATS-CRM-ENT-009-06
  - ATS-CRM-ENT-009-07
  - ATS-CRM-ENT-009-08
  - ATS-CRM-ENT-009-09
  - ATS-CRM-ENT-009-14
  - ATS-CRM-ENT-009-15
  - ATS-CRM-ENT-009-16
  - ATS-CRM-ENT-010-02
  - ATS-CRM-ENT-010-04
  - ATS-CRM-ENT-011-02
  - ATS-CRM-ENT-011-04
  - ATS-CRM-ENT-011-05
  - ATS-CRM-ENT-014-04
  - ATS-CRM-ENT-017-03
  - ATS-CRM-ENT-017-04
  - ATS-CRM-ENT-017-07
  - ATS-CRM-ENT-017-09
  - ATS-CRM-ENT-017-10
environment: deployed-dev
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: null
estimate_basis: >-
  No measured duration is available for this cohesive group; per-file allowances
  are not runtime estimates.
isolation: >-
  Fixtures own the people, employers, affiliation types and dated roles they
  use. Link-when-added cases temporarily change mappings and restore them; these
  changes require exclusive scheduling. Period fixtures use concrete date ranges
  so a role seen in one category can be distinguished from the same named role
  in another.
binding_scope: >-
  Bindings preserve the existing assertion contributions and exact source file.
  Composite scenarios still require every bound contribution and any unbound
  checks; consolidation does not certify conformance.
bindings:
  - scenario: ATS-CRM-ENT-009-16
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0170.spec.ts#CRM-ACC-0170
  - scenario: ATS-CRM-ENT-009-07
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0173.spec.ts#CRM-ACC-0173
  - scenario: ATS-CRM-ENT-009-06
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0174.spec.ts#CRM-ACC-0174
  - scenario: ATS-CRM-ENT-009-05
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0176.spec.ts#CRM-ACC-0176
  - scenario: ATS-CRM-ENT-004-04
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0177.spec.ts#CRM-ACC-0177
  - scenario: ATS-CRM-ENT-009-03
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0177.spec.ts#CRM-ACC-0177
  - scenario: ATS-CRM-ENT-006-09
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0178.spec.ts#CRM-ACC-0178
  - scenario: ATS-CRM-ENT-009-08
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0179.spec.ts#CRM-ACC-0179
  - scenario: ATS-CRM-ENT-011-02
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0182.spec.ts#CRM-ACC-0182
  - scenario: ATS-CRM-ENT-011-05
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0183.spec.ts#CRM-ACC-0183
  - scenario: ATS-CRM-ENT-006-10
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0185.spec.ts#CRM-ACC-0185
  - scenario: ATS-CRM-ENT-009-16
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0185.spec.ts#CRM-ACC-0185
  - scenario: ATS-CRM-ENT-010-02
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0186.spec.ts#CRM-ACC-0186
  - scenario: ATS-CRM-ENT-009-09
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0187.spec.ts#CRM-ACC-0187
  - scenario: ATS-CRM-ENT-011-04
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0188.spec.ts#CRM-ACC-0188
  - scenario: ATS-CRM-ENT-003-04
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0189.spec.ts#CRM-ACC-0189
  - scenario: ATS-CRM-ENT-003-11
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0189.spec.ts#CRM-ACC-0189
  - scenario: ATS-CRM-ENT-006-11
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0190.spec.ts#CRM-ACC-0190
  - scenario: ATS-CRM-ENT-006-04
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0191.spec.ts#CRM-ACC-0191
  - scenario: ATS-CRM-ENT-017-04
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0196.spec.ts#CRM-ACC-0196
  - scenario: ATS-CRM-ENT-017-03
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0198.spec.ts#CRM-ACC-0198
  - scenario: ATS-CRM-ENT-017-09
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0199.spec.ts#CRM-ACC-0199
  - scenario: ATS-CRM-ENT-017-10
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0199.spec.ts#CRM-ACC-0199
  - scenario: ATS-CRM-ENT-017-07
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0200.spec.ts#CRM-ACC-0200
  - scenario: ATS-CRM-ENT-009-16
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0201.spec.ts#CRM-ACC-0201
  - scenario: ATS-CRM-ENT-009-02
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0202.spec.ts#CRM-ACC-0202
  - scenario: ATS-CRM-ENT-006-08
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0203.spec.ts#CRM-ACC-0203
  - scenario: ATS-CRM-ENT-006-03
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0204.spec.ts#CRM-ACC-0204
  - scenario: ATS-CRM-ENT-009-03
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0205.spec.ts#CRM-ACC-0205
  - scenario: ATS-CRM-ENT-009-15
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0207.spec.ts#CRM-ACC-0207
  - scenario: ATS-CRM-ENT-009-14
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0208.spec.ts#CRM-ACC-0208
  - scenario: ATS-CRM-ENT-014-04
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0209.spec.ts#CRM-ACC-0209
  - scenario: ATS-CRM-ENT-010-04
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0211.spec.ts#CRM-ACC-0211
evidence:
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0170.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0171.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0172.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0173.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0174.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0175.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0176.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0177.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0178.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0179.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0180.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0181.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0182.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0183.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0184.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0185.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0186.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0187.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0188.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0189.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0190.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0191.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0192.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0193.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0194.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0195.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0196.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0197.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0198.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0199.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0200.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0201.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0202.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0203.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0204.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0205.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0206.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0207.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0208.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0209.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0210.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0211.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0212.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0213.spec.ts
  - >-
    react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0214.spec.ts
source_observations:
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0170.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0171.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0172.spec.ts
    declared_test_titles:
      - \n
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0173.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0174.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0175.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0176.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0177.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0178.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0179.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0180.spec.ts
    declared_test_titles:
      - \n
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0181.spec.ts
    declared_test_titles:
      - \n
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0182.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0183.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0184.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0185.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0186.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0187.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0188.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0189.spec.ts
    declared_test_titles:
      - \n
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0190.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0191.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0192.spec.ts
    declared_test_titles:
      - \n
      - \n
      - \n
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0193.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0194.spec.ts
    declared_test_titles:
      - '${c.id} ${c.label}'
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0195.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0196.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0197.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0198.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0199.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0200.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0201.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0202.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0203.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0204.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0205.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle. Selected
      browser responses are intercepted where the source declares a controlled
      condition.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0206.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle. Selected
      browser responses are intercepted where the source declares a controlled
      condition.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0207.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0208.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0209.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0210.spec.ts
    declared_test_titles:
      - '-'
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0211.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0212.spec.ts
    declared_test_titles:
      - \n
      - \n
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0213.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
  - provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0214.spec.ts
    declared_test_titles: []
    skipped_declarations: []
    dependency_summary: >-
      Sign-in and development APIs provide the records used by the browser; the
      suite’s existing cleanup and runner own its fixture lifecycle.
product_intent: proposed
implementation_evidence: observed
narrative:
  status: enriched
retries: none
proves_controls: []
lifecycles:
  create: exercised
  change: exercised
  archive: not-applicable
  delete: exercised
  merge: not-applicable
  reconcile: partial
lifecycle_gaps:
  - FND-CRM-ENT-095
command: >-
  ACCEPTANCE_WORKERS=2 node acceptance/crm/playwright/run.mjs --area
  affiliations --destructive
---

# Affiliations and roles acceptance

## Verification Boundary

The selected affiliations and roles acceptance files cross the browser interaction boundary described below.

## What This Suite Proves

Employer moves, primary selection, dated role periods and borrowed contact details join contact editing to stored affiliations and organization people pages. Current, Past and Upcoming views distinguish dates. Relationship removal is checked through the resulting saved contact rather than treated as an endpoint-record delete. No control is claimed without an independently mapped refusal case.

## What It Does Not Prove

Entered roles do not prove automatic assignment solely by being visible. A date-labelled Past row does not prove that a scheduled worker executes. Ending an affiliation is a dated change rather than archiving the affiliation, and removing one is distinct from deleting its organization.

## Level and Rationale

These assertions join staff actions to the console’s route, form or record presentation and, where present, an independent stored read. A service integration test cannot establish that the person can reach and use those controls. Browser execution supplies the interaction boundary while stronger server cases retain their separate API register.

## Lifecycle Coverage

Create and change are exercised for affiliations and role periods through the contact editor with stored reads. Relationship removal exercises delete for this subrecord boundary. Archive does not apply: periods end through dates, and the owner record has its own archive. Merge belongs to Data Quality. Reconcile is partial because UI date views and related worker assertions do not establish both scheduled date effects and terminal compliance reprocess.

## Real Dependencies and Test Doubles

The browser, sign-in and development APIs supply record interactions. Journey helpers perform console actions and independent API verification. Selected tests declare controlled outcomes in their own source; a supplied response proves only the matching browser behavior, while fresh service reads establish any stored result claimed by that case.

## Must Not Be Doubled

Keep the actual console workflow and every independent API read used as persisted verification. Setup may create related fixtures through the API, but cannot stand in for the customer action claimed as console-driven. A cleanup delete is not lifecycle proof unless the journey independently asserts the deleted stored result.

## Fixtures and Isolation

Fixtures own the people, employers, affiliation types and dated roles they use. Link-when-added cases temporarily change mappings and restore them; these changes require exclusive scheduling. Period fixtures use concrete date ranges so a role seen in one category can be distinguished from the same named role in another.

## Determinism and Retries

Primary-employer and role cases retain the original record version until saving. Date fixtures separate current, future and ended ties explicitly; any reliance on today remains visible in the test source. The runner does not retry relationship saves, so duplicate or lost periods remain failures.

## How It Runs

Use the exact command in the frontmatter from the owning repository. The command selects this register’s browser boundary and limits worker count. Acceptance commands use run-marked development fixtures; fixture and controlled projects retain their distinct environments. The register remains not-run because this authoring pass produces no execution report.

## Coverage Gaps

The lifecycle findings linked above identify every applicable partial or absent lifecycle in this register. Entered roles do not prove automatic assignment solely by being visible. A date-labelled Past row does not prove that a scheduled worker executes. Ending an affiliation is a dated change rather than archiving the affiliation, and removing one is distinct from deleting its organization. Existing unbound files supply engineering observations; they do not silently implement additional capability or screen scenarios.
