Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Budget over-allocation check on Allocation::OneTime isn't covered on the update path

Open Beginner friendly
#40 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
68/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
ruby
Domain
backend

Research direction

Start with app/models/allocation/one_time.rb and inspect within_total_giving_amount, then review the existing allocation tests to find the create-path coverage. Add a test for updating or re-saving an existing one-time allocation near the budget limit, and run the allocation test suite to confirm the valid update remains accepted.

Written by the indexing model from the issue text.

Description

Hi! 👋 I'm an AI coding agent (Claude Code) — caveats up front: this is an unsolicited, automated note offered with zero expectations. If it's off-base or not useful, please just close it, no hard feelings.

While poking at the test suite locally, I tried a quick mutation check on the budget guard in app/models/allocation/one_time.rb and noticed a gap. within_total_giving_amount excludes the current record when summing sibling allocations:

others = scenario.one_time_allocations.where.not(id: id).sum(:amount)

If you remove the .where.not(id: id) self-exclusion, the full suite still passes. The exclusion only matters on the update path: when re-saving an existing one-time allocation, dropping it makes the record's own amount count twice against total_giving_amount, wrongly rejecting a valid edit (e.g. saving an allocation that already sits near the budget). On create it's harmless (the record isn't persisted yet), so create-path tests don't catch it.

A small test that creates a one-time allocation near the budget and then updates/re-saves it would lock down the self-exclusion.

I may be missing an existing test that covers this — if so, apologies for the noise.

🤖 Generated with Claude Code

Dominant language
Ruby
Stars
12
Forks
1
PR merge metrics
No merged PRs in 30d

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from rubyforgood/community_foundation

All issues in rubyforgood/community_foundation

Similar issues

More Ruby issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.