---
id: ATS-CMT-MTG-018
scope: CAP-CMT-MTG-018
product_area: committees
module: meetings
revision: 1
status: proposed
approved_by: null
approved_at: null
source_sha:
  services-committees: 36129c24daeaadcdb339218c38cdeaff9861359d
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
scenarios:
- id: ATS-CMT-MTG-018-01
  title: A nomination must name its nominee and its own committee’s target
  level: api
  proves:
  - BR-CAP-CMT-MTG-018-01
  preconditions: Two committees.
  steps: Nominate naming nobody, a name without an address, another committee’s opening, and a seat with the wrong position.
  expected: All are refused with nothing left behind.
  negative: true
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#refuses a nomination naming no contact and no address
  - services-committees:modules/recruitment/tests/e2e/submissions.e2e.spec.ts#refuses a nomination naming nobody, 400
  - react-console:acceptance/committees/playwright/journeys/recruitment/CMT-ACC-0406.spec.ts#CMT-ACC-0406
  provenance: test
  source: services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#refuses a nomination naming no contact and no address
- id: ATS-CMT-MTG-018-02
  title: A committee closed to nominations refuses them
  level: api
  proves:
  - BR-CAP-CMT-MTG-018-02
  preconditions: A committee that takes no nominations.
  steps: Nominate as staff and in the portal.
  expected: Both are refused.
  negative: true
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/recruitment/tests/integration/services/declined-nominees.integration.spec.ts#refuses a staff nomination
  - services-committees:modules/recruitment/tests/integration/services/declined-nominees.integration.spec.ts#refuses a member’s portal nomination
  - react-console:acceptance/committees/playwright/journeys/recruitment/CMT-ACC-0413.spec.ts#CMT-ACC-0413
  provenance: test
  source: services-committees:modules/recruitment/tests/integration/services/declined-nominees.integration.spec.ts#refuses a staff nomination
- id: ATS-CMT-MTG-018-03
  title: Every move a nomination may make, and none other
  level: unit
  proves:
  - BR-CAP-CMT-MTG-018-03
  preconditions: The pure nomination lifecycle.
  steps: Ask every action from every status.
  expected: Moves follow the table; elected and withdrawn are final.
  negative: true
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/recruitment/tests/unit/services/nomination-lifecycle.spec.ts#moves and refuses exactly as the table says, from every status by every action
  - services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#refuses to decline an elected nomination
  - react-console:acceptance/committees/playwright/journeys/recruitment/CMT-ACC-0411.spec.ts#CMT-ACC-0411
  provenance: test
  source: services-committees:modules/recruitment/tests/unit/services/nomination-lifecycle.spec.ts#moves and refuses exactly as the table says, from every status by every action
- id: ATS-CMT-MTG-018-04
  title: Slating opens the committee’s appointment decision
  level: api
  proves:
  - BR-CAP-CMT-MTG-018-04
  preconditions: A nomination of a contact and one of a name only.
  steps: Slate each into a decision.
  expected: The first opens an appointment decision linked to the nomination and nominee; the second is refused.
  negative: true
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#opens a decision of kind appointment proposing the nominee in the nomination’s position
  - services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#links the decision to the nomination and the nominee
  - services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#refuses to slate into a decision a nominee who is no contact
  - react-console:acceptance/committees/playwright/journeys/recruitment/CMT-ACC-0409.spec.ts#CMT-ACC-0409
  provenance: test
  source: services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#opens a decision of kind appointment proposing the nominee in the nomination’s position
- id: ATS-CMT-MTG-018-05
  title: A slated nominee is elected when the board carries the slate
  level: api
  proves:
  - BR-CAP-CMT-MTG-018-05
  preconditions: An open slate decision proposing two nominees, one since declined.
  steps: Carry it.
  expected: The remaining nominee is elected with the appointment linked; the declined one is skipped and never appointed.
  negative: false
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#marks the nomination elected when the decision carries
  - services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#links the appointment the decision made, made by the decision
  - services-committees:modules/recruitment/tests/integration/services/declined-nominees.integration.spec.ts#never appoints Kim
  - services-committees:modules/recruitment/tests/integration/services/declined-nominees.integration.spec.ts#names Kim’s nomination skipped, and Lee’s elected, in the consequences
  - react-console:acceptance/committees/playwright/journeys/recruitment/CMT-ACC-0408.spec.ts#CMT-ACC-0408
  provenance: test
  source: services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#marks the nomination elected when the decision carries
- id: ATS-CMT-MTG-018-06
  title: Withdrawing a nomination withdraws its pending decision
  level: api
  proves:
  - BR-CAP-CMT-MTG-018-06
  preconditions: A slated nomination with a draft decision.
  steps: Withdraw the nomination.
  expected: The decision is withdrawn too.
  negative: false
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#withdraws the nomination
  - services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#withdraws its draft decision with it
  - react-console:acceptance/committees/playwright/journeys/decisions/CMT-ACC-0358.spec.ts#CMT-ACC-0358
  provenance: test
  source: services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#withdraws the nomination
- id: ATS-CMT-MTG-018-07
  title: A declined nominee is never appointed
  level: api
  proves:
  - BR-CAP-CMT-MTG-018-07
  preconditions: 'Three slated nominations: alone in an open decision, with others in a draft, and with others in an open decision.'
  steps: Decline each.
  expected: The first decision is withdrawn, the second loses the nominee, the third stays open and skips the nominee when it carries.
  negative: false
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/recruitment/tests/unit/services/slate-after-decline.spec.ts#withdraws a draft or open decision that proposes the nominee alone, and touches no other status
  - services-committees:modules/recruitment/tests/unit/services/slate-after-decline.spec.ts#removes the nominee’s proposal from a draft proposing others too
  - services-committees:modules/recruitment/tests/unit/services/slate-after-decline.spec.ts#leaves an open decision proposing others too for its close to skip the nominee
  - services-committees:modules/recruitment/tests/integration/services/declined-nominees.integration.spec.ts#withdraws the decision that proposed Robin alone
  - react-console:acceptance/committees/playwright/journeys/recruitment/CMT-ACC-0410.spec.ts#CMT-ACC-0410
  provenance: test
  source: services-committees:modules/recruitment/tests/unit/services/slate-after-decline.spec.ts#withdraws a draft or open decision that proposes the nominee alone, and touches no other status
- id: ATS-CMT-MTG-018-08
  title: A portal nomination asks the nominee to consent
  level: api
  proves:
  - BR-CAP-CMT-MTG-018-08
  preconditions: A portal member and a colleague who is a contact.
  steps: Nominate the colleague.
  expected: The member is the nominator and the colleague is asked once, with the time recorded.
  negative: false
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#records the member as the nominator
  - services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#asks the nominee to consent, once
  - services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#records when consent was asked
  - react-console:acceptance/committees/playwright/journeys/recruitment/CMT-ACC-0412.spec.ts#CMT-ACC-0412
  provenance: test
  source: services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#records the member as the nominator
- id: ATS-CMT-MTG-018-09
  title: Correcting the nominee’s name keeps the rest
  level: api
  proves:
  - BR-CAP-CMT-MTG-018-09
  preconditions: A nomination linked to a contact, an opening and a submission.
  steps: Change only the name; then save at an old version.
  expected: The links stay; the stale save is refused.
  negative: true
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/recruitment/tests/integration/services/edits.integration.spec.ts#keeps the opening, seat, position, contact link and e-mail the edit did not carry
  - services-committees:modules/recruitment/tests/integration/services/edits.integration.spec.ts#still refuses an edit made against a stale version
  - services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#refuses a replace at a stale version
  - react-console:acceptance/committees/playwright/journeys/recruitment/CMT-ACC-0407.spec.ts#CMT-ACC-0407
  provenance: test
  source: services-committees:modules/recruitment/tests/integration/services/edits.integration.spec.ts#keeps the opening, seat, position, contact link and e-mail the edit did not carry
- id: ATS-CMT-MTG-018-10
  title: A dissolved committee’s nominations are withdrawn
  level: api
  proves:
  - BR-CAP-CMT-MTG-018-10
  preconditions: A committee with a submitted and a slated nomination.
  steps: Dissolve it.
  expected: Both are withdrawn and the slate’s draft decision with them.
  negative: false
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/recruitment/tests/integration/services/dissolved-recruitment.integration.spec.ts#withdraws the submitted and the slated nomination
  - services-committees:modules/recruitment/tests/integration/services/dissolved-recruitment.integration.spec.ts#withdraws the slate’s draft decision with its nomination
  - react-console:acceptance/committees/playwright/journeys/recruitment/CMT-ACC-0416.spec.ts#CMT-ACC-0416
  provenance: test
  source: services-committees:modules/recruitment/tests/integration/services/dissolved-recruitment.integration.spec.ts#withdraws the submitted and the slated nomination
- id: ATS-CMT-MTG-018-11
  title: A nomination form’s own fields are kept
  level: api
  proves:
  - BR-CAP-CMT-MTG-018-11
  preconditions: A nomination form with two custom fields.
  steps: Nominate filling them.
  expected: The values are stored and read back with the nomination.
  negative: false
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to: []
  provenance: proposed
  source: services-committees:docs/debt/custom-field-capability-nominations.md
- id: ATS-CMT-MTG-018-12
  title: A merged nominee follows the surviving contact
  level: api
  proves:
  - BR-CAP-CMT-MTG-018-12
  preconditions: A pending nomination of a contact merged into another.
  steps: Slate it.
  expected: It proposes the surviving contact.
  negative: false
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - react-console:acceptance/committees/playwright/journeys/recruitment/CMT-ACC-0419.spec.ts#CMT-ACC-0419
  provenance: test
  source: react-console:acceptance/committees/playwright/journeys/recruitment/CMT-ACC-0419.spec.ts#CMT-ACC-0419
- id: ATS-CMT-MTG-018-13
  title: Only nomination managers act, and only in their association
  level: api
  proves:
  - BR-CAP-CMT-MTG-018-14
  preconditions: A nomination; read-only staff and another association’s administrator.
  steps: Read, list and move it as each.
  expected: Read-only staff can read but not move it; the other association finds nothing.
  negative: true
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#lists none of it to tenant B
  - services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#reads none of it to tenant B by id
  - services-committees:modules/recruitment/tests/e2e/submissions.e2e.spec.ts#refuses the list to a caller holding no nominations key, 403
  - react-console:acceptance/committees/playwright/journeys/recruitment/CMT-ACC-0403.spec.ts#CMT-ACC-0403
  provenance: test
  source: services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#lists none of it to tenant B
- id: ATS-CMT-MTG-018-14
  title: 'Journey end state: the elected nomination links the appointment the board’s decision made'
  level: api
  proves:
  - AS-JNY-CMT-MTG-005-01
  preconditions: The journey’s earlier steps have run.
  steps: Run the journey to this point and read the records.
  expected: The elected nomination links the appointment the board’s decision made.
  negative: false
  data_needs: The journey’s fixtures in a disposable workspace
  bound_to:
  - services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#links the appointment the decision made, made by the decision
  provenance: test
  source: services-committees:modules/recruitment/tests/integration/services/nominations.integration.spec.ts#links the appointment the decision made, made by the decision
evidence:
- 'services-committees at 36129c24: nomination routes and schemas, nominations service and persistence, nomination lifecycle, slate-after-decline rule, slated nominations, record merge references, debt register, CMTE-M1, CMTE-M5 and CMTE-M7 records'
- 'react-console at baf6dae3: acceptance inventory CAP-CMT-REC-011 to 015 and the journeys cited'
---

# Take nominations to a committee and carry a slate to a decision: Acceptance Test Set

## Coverage

| Rule | Proved by |
|---|---|
| `BR-CAP-CMT-MTG-018-01` | `ATS-CMT-MTG-018-01` |
| `BR-CAP-CMT-MTG-018-02` | `ATS-CMT-MTG-018-02` |
| `BR-CAP-CMT-MTG-018-03` | `ATS-CMT-MTG-018-03` |
| `BR-CAP-CMT-MTG-018-04` | `ATS-CMT-MTG-018-04` |
| `BR-CAP-CMT-MTG-018-05` | `ATS-CMT-MTG-018-05` |
| `BR-CAP-CMT-MTG-018-06` | `ATS-CMT-MTG-018-06` |
| `BR-CAP-CMT-MTG-018-07` | `ATS-CMT-MTG-018-07` |
| `BR-CAP-CMT-MTG-018-08` | `ATS-CMT-MTG-018-08` |
| `BR-CAP-CMT-MTG-018-09` | `ATS-CMT-MTG-018-09` |
| `BR-CAP-CMT-MTG-018-10` | `ATS-CMT-MTG-018-10` |
| `BR-CAP-CMT-MTG-018-11` | `ATS-CMT-MTG-018-11` |
| `BR-CAP-CMT-MTG-018-12` | `ATS-CMT-MTG-018-12` |
| `BR-CAP-CMT-MTG-018-14` | `ATS-CMT-MTG-018-13` |
