Skip to content

ATS-CMT-MTG-010Put a motion to a committee and record how it was decided: Acceptance Test Set

Markdown

ATS-CMT-MTG-010

Put a motion to a committee and record how it was decided: Acceptance Test Set

Markdown
  • DocumentProposed

Planning

Proves capability
CAP-CMT-MTG-010

KindAcceptance test setProduct areaCommitteesModuleMeetings, Decisions and RecruitmentRevision1

Read atservices-committees 36129c24react-console baf6dae3

Test Scenarios

15 scenarios proving CAP-CMT-MTG-010; 15 bound to an existing test.

01 A decision moves only as its lifecycle allowsunitnegativetest
Proves
BR-CAP-CMT-MTG-010-01
Preconditions
The pure decision rules.
Steps
Ask every move from every status.
Expected
Only the moves of the lifecycle are allowed; failed, tabled, withdrawn, no-quorum and superseded decisions move nowhere.
Data
A committee with a seated roster in a disposable workspace
Bound to
services-committees:modules/decisions/tests/unit/services/decision-rules.spec.ts#closes an open decision carried, failed or without a quorum, or tables or withdraws it, and nothing else
services-committees:modules/decisions/tests/unit/services/decision-rules.spec.ts#moves a failed, tabled, withdrawn, no-quorum or superseded decision nowhere
Source
services-committees:modules/decisions/tests/unit/services/decision-rules.spec.ts#opens, tables or withdraws a draft, and nothing else
02 Numbers are taken at opening, per committee and yearapitest
Proves
BR-CAP-CMT-MTG-010-02
Preconditions
A committee with no decisions this year.
Steps
Open two decisions; withdraw a draft; open one in the next year.
Expected
They are 2026-01 and 2026-02; the draft has none; next year starts at 01.
Data
A committee with a seated roster in a disposable workspace
Bound to
services-committees:modules/decisions/tests/unit/services/decision-rules.spec.ts#gives a committee’s first decision number 1 and leaves the counter at 2
Source
services-committees:modules/decisions/tests/unit/services/decision-rules.spec.ts#gives a committee’s first decision number 1 and leaves the counter at 2
03 What a decision froze survives the board changingapitest
Proves
BR-CAP-CMT-MTG-010-03
Preconditions
A board of nine voting members with an ex officio past president; seven present.
Steps
Open a decision; then end one member’s appointment and add a new member.
Expected
The nine and the derived past president are its voters, the seven present are recorded, the departed member still votes and the new one cannot.
Data
A committee with a seated roster in a disposable workspace
Bound to
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#answers the voting seat-holders and the derived Immediate Past President, and no adviser
Source
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#snapshots the nine voting appointments as its voters
04 Meeting methods need a meeting and e-mail votes need a closing timeapinegativetest
Proves
BR-CAP-CMT-MTG-010-04
Preconditions
A scheduled meeting.
Steps
Draft a roll call with no meeting, an e-mail vote at the meeting, and a voice vote with a closing time.
Expected
All three are refused and none leaves a draft.
Data
A committee with a seated roster in a disposable workspace
Bound to
services-committees:modules/decisions/tests/unit/services/decision-rules.spec.ts#refuses an asynchronous decision without a closing time
services-committees:modules/decisions/tests/integration/api/draft-closes-at.integration.spec.ts#answers 400 closes_at_not_async for a voice decision at the meeting drafted with closes_at
Source
services-committees:modules/decisions/tests/unit/services/decision-rules.spec.ts#refuses an asynchronous decision taken at a meeting
05 E-mail votes follow the board’s rulesapinegativetest
Proves
BR-CAP-CMT-MTG-010-05
Preconditions
A board allowing e-mail votes with 48 hours open and one forbidding them.
Steps
Open e-mail votes closing in 47 and 48 hours, and one at the forbidding board.
Expected
Only the 48-hour vote at the allowing board opens.
Data
A committee with a seated roster in a disposable workspace
Bound to
services-committees:modules/decisions/tests/integration/services/consequences.integration.spec.ts#refuses an asynchronous decision the rules do not allow, 409 async_not_allowed
services-committees:modules/decisions/tests/integration/services/consequences.integration.spec.ts#refuses a closing time sooner than the 48 hours the rules require, 400 closes_at_too_soon
services-committees:modules/decisions/tests/unit/services/decision-rules.spec.ts#opens an asynchronous decision closing 48 hours on under Robert’s Rules
Source
services-committees:modules/decisions/tests/integration/services/consequences.integration.spec.ts#refuses an asynchronous decision the rules do not allow, 409 async_not_allowed
06 A decision of the wrong kind for what it proposes is refusedapinegativetest
Proves
BR-CAP-CMT-MTG-010-06 BR-CAP-CMT-MTG-010-07
Preconditions
A committee.
Steps
Draft a removal naming no appointment, a motion proposing an appointment, and a motion naming minutes.
Expected
All three are refused naming the field.
Data
A committee with a seated roster in a disposable workspace
Bound to
Source
react-console:acceptance/committees/playwright/journeys/decisions/CMT-ACC-0347.spec.ts#CMT-ACC-0347
07 One vote per voter, never changedapinegativetest
Proves
BR-CAP-CMT-MTG-010-08
Preconditions
An open roll call.
Steps
Vote for an appointment outside the voters, vote twice for one, and change a vote after closing.
Expected
Each is refused; the database refuses a vote outside the voters too.
Data
A committee with a seated roster in a disposable workspace
Bound to
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#refuses a vote by an appointment not in the snapshot, 409 not_eligible
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#refuses a second vote by the same appointment, 409 already_voted
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#refuses a vote the database is handed for an appointment outside the snapshot (the trigger)
services-committees:modules/decisions/tests/e2e/decisions.e2e.spec.ts#refuses a second vote by the same member with 409, already_voted
Source
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#refuses a vote by an appointment not in the snapshot, 409 not_eligible
08 A proxy vote is refused where proxies are forbidden or the appointment is not currentapinegativetest
Proves
BR-CAP-CMT-MTG-010-09
Preconditions
A board forbidding proxies and a board allowing them.
Steps
Vote by proxy at each; at the second, name an ended appointment as the proxy’s.
Expected
The first and the ended appointment are refused; a proper proxy vote is recorded.
Data
A committee with a seated roster in a disposable workspace
Bound to
services-committees:modules/decisions/tests/integration/services/consequences.integration.spec.ts#refuses a vote by proxy when the rules forbid proxies, 409 proxies_forbidden
services-committees:modules/decisions/tests/integration/services/consequences.integration.spec.ts#records a vote by the meeting’s proxy participant when the rules allow proxies
services-committees:modules/decisions/tests/integration/api/proxy-appointment.integration.spec.ts#answers 400 appointment_not_current naming the field for the committee’s ended appointment
services-committees:modules/decisions/tests/integration/api/proxy-appointment.integration.spec.ts#answers 400 unknown_appointment naming the field for another committee’s appointment
Source
services-committees:modules/decisions/tests/integration/services/consequences.integration.spec.ts#refuses a vote by proxy when the rules forbid proxies, 409 proxies_forbidden
09 A voice vote needs its tallyapinegativetest
Proves
BR-CAP-CMT-MTG-010-10
Preconditions
An open voice vote.
Steps
Close it without a tally; record a tally at an old version; record it properly and close.
Expected
The first two are refused; the last closes.
Data
A committee with a seated roster in a disposable workspace
Bound to
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#refuses to close a voice vote with no tally recorded, 409 tally_required
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#refuses a tally recorded at a version since changed, StaleObject
Source
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#refuses to close a voice vote with no tally recorded, 409 tally_required
10 A decided motion is the permanent recordapinegativetest
Proves
BR-CAP-CMT-MTG-010-11
Preconditions
An open decision and a closed one.
Steps
Change the open one’s text; change the closed one’s tally and status; delete a decision and a vote.
Expected
Every change and deletion is refused.
Data
A committee with a seated roster in a disposable workspace
Bound to
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#refuses the application role the deletion of a decision (42501)
Source
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#refuses a change of an open decision’s text
11 E-mail votes close themselves on the hourapitest
Proves
BR-CAP-CMT-MTG-010-12
Preconditions
An e-mail vote past its closing time and one closing within a day.
Steps
Run the hourly sweep twice.
Expected
The first closes with the job as its recorder; the three who have not voted on the second are reminded once; the second sweep does nothing more.
Data
A committee with a seated roster in a disposable workspace
Bound to
services-committees:modules/decisions/tests/integration/services/consequences.integration.spec.ts#reminds the three who have not voted on the one closing within a day
Source
services-committees:modules/decisions/tests/integration/services/consequences.integration.spec.ts#closes the decision past its closing time, carried 2 to 0
12 Voters hear of the opening and the close, and nothing when it is set asideapitest
Proves
BR-CAP-CMT-MTG-010-13
Preconditions
A decision with nine voters.
Steps
Open and close it; open and table another.
Expected
Each voter is told once of the first opening and close and of the second opening; nobody hears of the tabling.
Data
A committee with a seated roster in a disposable workspace
Bound to
services-committees:modules/decisions/tests/unit/services/decision-notifications.spec.ts#logs the skipped notice with the decision, the contact, the purpose and the reason
Source
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#tells each of the nine voters it opened
13 A secret ballot closes only from its certified resultapinegativetest
Proves
BR-CAP-CMT-MTG-010-14
Preconditions
A secret ballot opened through the ballot service.
Steps
Close it by hand; deliver the certified result twice.
Expected
The hand close is refused; the first delivery closes it once; the second is ignored.
Data
A committee with a seated roster in a disposable workspace
Bound to
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#refuses to close a secret vote by hand, 409 awaiting_certification
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#closes a secret vote from the certified result, failed 2 to 6, the certification recorded
Source
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#opens a secret vote’s election through the ballot port
14 A typed-in result for another election is refusedapinegativetest
Proves
BR-CAP-CMT-MTG-010-15
Preconditions
A secret ballot that opened an election.
Steps
Apply a certified result naming another election; apply it again after the close.
Expected
The first is refused; applying the right one again after the close answers ignored with the decision carried.
Data
A committee with a seated roster in a disposable workspace
Bound to
services-committees:modules/decisions/tests/integration/services/disclosures.integration.spec.ts#answers staff applying it again ignored, with the decision carried
Source
services-committees:modules/decisions/tests/integration/services/disclosures.integration.spec.ts#refuses staff applying another election to it
15 Journey end state: the hourly sweep closes the motion once and reminds nothing more on its next runapitest
Proves
AS-JNY-CMT-MTG-004-03
Preconditions
The journey’s earlier steps have run.
Steps
Run the journey to this point and read the records.
Expected
The hourly sweep closes the motion once and reminds nothing more on its next run.
Data
The journey’s fixtures in a disposable workspace
Bound to
Source
services-committees:modules/decisions/tests/integration/services/consequences.integration.spec.ts#closes and reminds nothing more on a second sweep

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.