Replace flowchart/ with a traceable specification in docs/
The two Mermaid diagrams under flowchart/ described the intended flow but had drifted from the code and carried no link back to it. docs/ now holds the specification instead: 15 Italian documents (flows, architecture, data model, API, security, audit log, operations, decisions and limits, bug history) with 472 numbered requirements, each pointing at the function that implements it and the test that covers it. docs/processo-di-modifica.md defines the ID convention and the spec -> code -> test change workflow, and CLAUDE.md now names docs/ as authoritative. Writing the spec from the code also corrected stale claims in CLAUDE.md (B-41's get_history check, BUGS.md still tracking B-71/B-72, Cache-Control scope, the error contract's bare-string exceptions) and in the operator guides (payouts do retry, only `drawing` fails to resume, rounds do not open without fee_address). The B-70 doc test now pins the prose in docs/scommesse-e-prelievi.md instead of the deleted diagram. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
526a649c8b
commit
61efbb0e37
29 files changed
+6964
-310
No files matched your search
@@ -304,7 +304,7 @@ async def test_a_bet_with_a_dust_limit_of_headroom_is_accepted(session_factory):
|
||||
|
||||
|
||||
async def test_withdrawal_is_allowed_while_a_bet_is_still_unconfirmed(session_factory):
|
||||
"""B-70: the flowchart's WITHDRAW node used to state that a withdrawal cannot
|
||||
"""B-70: the (since removed) flowchart's WITHDRAW node used to state that a withdrawal cannot
|
||||
happen together with a bet in progress. It can, and should: the hazard is the two
|
||||
picking the *same* UTXO, which is already excluded twice over — the per-user lock
|
||||
(app/tx/locks.py) keeps the two builds from ever being in flight at once, and
|
||||
@@ -345,13 +345,13 @@ async def test_withdrawal_is_allowed_while_a_bet_is_still_unconfirmed(session_fa
|
||||
assert pending_kinds == {"bet", "withdrawal"}
|
||||
|
||||
|
||||
def test_the_flowchart_no_longer_claims_bets_and_withdrawals_are_exclusive():
|
||||
def test_the_docs_no_longer_claim_bets_and_withdrawals_are_exclusive():
|
||||
from pathlib import Path
|
||||
|
||||
diagram = (
|
||||
Path(__file__).resolve().parents[2] / "flowchart" / "platform-overview.mmd"
|
||||
doc = (
|
||||
Path(__file__).resolve().parents[2] / "docs" / "scommesse-e-prelievi.md"
|
||||
).read_text(encoding="utf-8")
|
||||
node = [line for line in diagram.splitlines() if line.strip().startswith("E1[")]
|
||||
assert len(node) == 1
|
||||
assert "non puo' avvenire insieme" not in node[0]
|
||||
assert "saldo confermato" in node[0]
|
||||
section = doc.split("## Scommessa e prelievo insieme", 1)[1]
|
||||
assert "non puo' avvenire insieme" not in doc
|
||||
assert "blocco per-utente" in section
|
||||
assert "anche mentre una scommessa" in section
|
||||
Reference in new issue
Block a user