• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

MushroomObserver / mushroom-observer / 27490847789
98%
main: 99%

Build:
Build:
LAST BUILD BRANCH: jdc-4107-omit-registration-panel-for-code-names
DEFAULT BRANCH: main
Ran 14 Jun 2026 06:41AM UTC
Jobs 1
Files 1551
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

14 Jun 2026 06:37AM UTC coverage: 97.508% (-0.2%) from 97.693%
27490847789

Pull #4521

github

nimmolo
admin: fix _Any prop guard + address Copilot review #2

CI was red on `NoAnyPhlexPropsTest` because
`Admin::Emails::MergeRequests::New` declared bare `_Any` props for
the two object instances. The rule lives in
`.claude/rules/phlex_conversions.md` ("ALWAYS use concrete prop
types — never `_Any` when the type is known"), and the controller
only ever passes a Herbarium / Location / Name instance per
`validate_merge_model!`. Switched to
`_Union(::Herbarium, ::Location, ::Name)`.

Second Copilot pass — all 4 valid:

1. `BlockedIpsController#edit` set `@ip` from `params[:report]`
   before stats were loaded, with no check that the IP appears in
   `@stats`. The per-IP stats subview would `NoMethodError` on
   `@stats[@ip][:user]` for a missing key. Extracted
   `#report_ip_if_present` that runs after stats load and short-
   circuits when the IP isn't in the hash.
2. `BlockedIpsController#load_paginated_ip_list` computed
   `page` from a `.to_i` of the raw param with no clamp. `page=0`
   makes `offset` negative (Ruby array slicing wraps to the end);
   `page=999999` slices past the array. Extracted `#clamp_page`
   that bounds the value to `[1, total_pages]`.
3-4. `Admin::DonationsController#edit` / `#update` were still
   building `@reviewed` — a hash of `donation.id => reviewed`. The
   Phlex `ReviewForm` reads `donation.reviewed` directly via
   `checked: donation.reviewed`, so `@reviewed` is dead state that
   only adds work on each request. Removed from both actions.
Pull Request #4521: admin: convert remaining ERBs in app/views/controllers/admin to Phlex

211 of 306 new or added lines in 21 files covered. (68.95%)

2 existing lines in 1 file now uncovered.

46910 of 48109 relevant lines covered (97.51%)

695.49 hits per line

Uncovered Changes

Lines Coverage ∆ File
89
0.0
app/views/controllers/admin/blocked_ips/edit/ip_stats.rb
3
94.44
app/views/controllers/admin/blocked_ips/edit/ip_summary.rb
2
97.56
-2.44% app/controllers/admin/blocked_ips_controller.rb
1
96.3
app/views/controllers/admin/blocked_ips/edit.rb

Coverage Regressions

Lines Coverage ∆ File
2
90.32
-1.11% app/controllers/admin/donations_controller.rb
Jobs
ID Job ID Ran Files Coverage
1 27490847789.1 14 Jun 2026 06:41AM UTC 1551
97.51
GitHub Action Run
Source Files on build 27490847789
  • Tree
  • List 1551
  • Changed 9
  • Source Changed 9
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27490847789
  • Pull Request #4521
  • PR Base - main (#27479756768)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc