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

MushroomObserver / mushroom-observer / 23461633071
96%
main: 96%

Build:
Build:
LAST BUILD BRANCH: njw-3808-occurrences-phase1
DEFAULT BRANCH: main
Ran 23 Mar 2026 09:47PM UTC
Jobs 1
Files 928
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

23 Mar 2026 09:43PM UTC coverage: 95.957% (-0.1%) from 96.105%
23461633071

Pull #3988

github

mo-nathan
Implement Phase 11: review affected areas and project membership

Phase 11 review:
- Project observation counts use visible_observations (exclude
  non-primary) for tab counts, checklist, constraint checks, and
  location counts
- Site statistics observation/taxa counts exclude non-primary
- Nightly cache refresh for occurrence.has_specimen added to
  script/refresh_caches
- Report classes and RSS log queries already correct

Project membership gap detection:
- When creating an occurrence or adding observations via field slip,
  detect when observations belong to different sets of projects
- Show a modal (Cancel/Add All) on top of the current page offering
  to add all observations to all projects
- OccurrenceResolveModal and OccurrenceResolveForm Phlex components
- Works on Occurrence New, Occurrence Edit, Field Slip New, and
  Field Slip Edit pages
- Occurrence::ProjectGaps concern for gap detection and resolution

Field slip logging:
- "Added to field slip [code] by [user]." log entries when
  observations are added via field slip
- "Removed from field slip [code] by [user]." on removal
- "Field slip [code] updated by [user]." on primary touch
- Occurrence::Logging concern extracts all logging/notification
  class methods from Occurrence model

Other fixes:
- Destroy occurrence uses can_edit? (any user) instead of
  creator-only check
- Occurrence.dissolve! preserves occurrence when field slip linked,
  reducing to primary-only instead of destroying
- API POST rejects observations from multiple existing occurrences

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pull Request #3988: Add Occurrence model and migration (#3808)

1475 of 1580 new or added lines in 55 files covered. (93.35%)

4 existing lines in 3 files now uncovered.

35790 of 37298 relevant lines covered (95.96%)

659.07 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
88.89
app/classes/query/occurrences.rb
1
95.6
-1.02% app/controllers/api2_controller.rb
1
96.3
-0.46% app/controllers/observations/namings_controller.rb
1
97.83
app/helpers/observations/sibling_records_helper.rb
2
94.44
-5.56% app/components/form_carousel.rb
3
96.1
app/classes/api2/occurrence_api.rb
3
93.75
-6.25% app/components/naming_form.rb
3
92.11
-0.39% app/helpers/namings_helper.rb
4
93.85
app/models/observation/merged_naming.rb
5
95.24
app/components/occurrence_edit_form.rb
5
92.54
app/components/occurrence_form.rb
5
96.35
app/controllers/occurrences_controller/edit.rb
5
85.71
app/controllers/occurrences_controller/show.rb
6
79.31
app/models/occurrence/project_gaps.rb
7
95.02
-1.15% app/models/observation.rb
8
20.0
app/mailers/occurrence_change_mailer.rb
14
91.19
app/controllers/field_slips_controller/observation_handling.rb
14
22.22
app/controllers/occurrences_controller/resolve_projects.rb
17
89.57
app/models/occurrence.rb

Uncovered Existing Lines

Lines Coverage ∆ File
1
84.62
-5.04% app/helpers/tabs/sequences_helper.rb
1
99.11
-0.89% app/models/sequence.rb
2
66.67
-33.33% app/helpers/field_slips_helper.rb
Jobs
ID Job ID Ran Files Coverage
1 23461633071.1 23 Mar 2026 09:47PM UTC 928
95.96
GitHub Action Run
Source Files on build 23461633071
  • Tree
  • List 928
  • Changed 44
  • Source Changed 43
  • Coverage Changed 36
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #23461633071
  • Pull Request #3988
  • PR Base - main (#23311953628)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc