use super::{fixtures::*, *};
#[test]
fn sns_proposal_resolves_list_id_and_renders_governance_proposal() {
let request = proposal_request("1");
let report = build_sns_proposal_report_with_source(&request, &FixtureSnsProposalSource)
.expect("sns proposal report");
let text = sns_proposal_report_text(&report);
assert_eq!(report.schema_version, SNS_PROPOSAL_REPORT_SCHEMA_VERSION);
assert_eq!(report.id, 1);
assert_eq!(report.name, "Fixture SNS");
assert_eq!(report.root_canister_id, ROOT_A);
assert_eq!(report.governance_canister_id, GOVERNANCE_A);
assert_eq!(report.proposal_id, 42);
assert_eq!(report.proposal.proposal_id, Some(42));
assert_eq!(report.proposal.action, "motion");
assert_eq!(report.proposal.decision_state, "open");
assert_eq!(report.proposal.ballot_count, 1);
assert_eq!(report.proposal.ballots[0].vote_text, "yes");
assert!(text.contains("proposal_id: 42"));
assert!(text.contains("action: motion"));
assert!(text.contains("ballot_count: 1"));
assert!(text.contains("Fixture proposal"));
assert!(text.contains("reject_cost: 1.00"));
}
#[test]
fn sns_proposals_resolves_list_id_and_renders_governance_proposals() {
let request = proposals_request("1");
let report = build_sns_proposals_report_with_source(&request, &FixtureSnsProposalsSource)
.expect("sns proposals report");
let text = sns_proposals_report_text(&report);
assert_eq!(report.schema_version, SNS_PROPOSALS_REPORT_SCHEMA_VERSION);
assert_eq!(report.id, 1);
assert_eq!(report.name, "Fixture SNS");
assert_eq!(report.root_canister_id, ROOT_A);
assert_eq!(report.governance_canister_id, GOVERNANCE_A);
assert_eq!(report.requested_limit, 10);
assert_eq!(report.before_proposal_id, Some(99));
assert_eq!(report.status_filter, "open");
assert_eq!(report.proposal_count, 1);
assert_eq!(report.proposals[0].proposal_id, Some(42));
assert_eq!(report.proposals[0].action, "motion");
assert_eq!(report.proposals[0].decision_state, "open");
assert_eq!(report.proposals[0].reject_cost_e8s, 100_000_000);
assert_eq!(report.proposals[0].created_at, "2026-06-01T00:00:00Z");
assert_eq!(
report.proposals[0]
.latest_tally
.as_ref()
.map(|tally| tally.yes),
Some(10)
);
assert!(text.contains("status_filter: open"));
assert!(text.contains("before_proposal_id: 99"));
assert!(text.contains("proposal_count: 1"));
assert!(text.contains("ID ACTION"));
assert!(text.contains("motion"));
assert!(text.contains("Fixture proposal"));
}