feat(server): ProposalKind::UpdateShamirParameters

This commit is contained in:
CleverWild
2026-06-13 21:20:06 +02:00
parent f080a8615f
commit ab767fe158
4 changed files with 71 additions and 1 deletions

View File

@@ -550,6 +550,45 @@ async fn replace_operator_inserts_identity_row() {
assert_eq!(count, 2); // original + new
}
#[tokio::test]
async fn update_shamir_parameters_reaches_quorum() {
let db = db::create_test_pool().await;
let actors = GlobalActors::spawn(db.clone()).await.unwrap();
actors
.vault
.ask(Bootstrap { seal_key: KeyCell::from([0u8; 32]) })
.await
.unwrap();
let signing_key = authn::SigningKey::generate();
let op_id = register_operator(&db, &signing_key.public_key()).await;
let proposal_id = actors
.proposal_manager
.ask(CreateProposal {
kind: ProposalKind::UpdateShamirParameters { new_n: 5 },
initiator_id: op_id,
ttl_secs: None,
})
.await
.unwrap();
let msg = make_vote_message(proposal_id, true);
let sig = signing_key.sign_message(&msg, GOVERNANCE_CONTEXT).unwrap();
let outcome = actors
.proposal_manager
.ask(CastVote {
proposal_id,
operator_id: op_id,
approve: true,
signature: sig.to_bytes(),
})
.await
.unwrap();
assert_eq!(outcome, VoteOutcome::QuorumApproved);
}
#[tokio::test]
async fn approve_server_update_reaches_quorum() {
let db = db::create_test_pool().await;