Skip to content

chore: Turbo Streams/Frame, controller refactor, 100% test coverage#13

Merged
eclectic-coding merged 8 commits into
mainfrom
chore/maintenance
May 18, 2026
Merged

chore: Turbo Streams/Frame, controller refactor, 100% test coverage#13
eclectic-coding merged 8 commits into
mainfrom
chore/maintenance

Conversation

@eclectic-coding
Copy link
Copy Markdown
Owner

Summary

  • Turbo Streams on jobs list — discarding a row removes it in place; last job swaps card to empty state
  • Turbo Frame on jobs list — status tabs, queue filter links, Discard All, and pagination all update without a full page reload
  • Clickable dashboard stat cards — each card links to its filtered view
  • CI: GitHub Releases — release job now creates a GitHub Release with CHANGELOG notes on version tags
  • JobsController refactor — two case statements replaced with EXECUTION_MODELS hash; destroy/discard_all share a before_action :set_status_and_queue and a filtered_scope helper
  • 100% line coverage — rescue paths, derive_status branches, and authentication block all exercised; boilerplate files excluded from SimpleCov

Test plan

  • All 45 RSpec examples pass (bundle exec rspec)
  • RuboCop clean (bin/rubocop)
  • Jobs list: clicking status tabs and queue filter links updates the table in place (no full reload)
  • Jobs list: discarding a single job removes the row without a reload; discarding the last job shows empty state
  • Dashboard: clicking a stat card navigates to the correct filtered view
  • CI passes on Ruby 3.3, 3.4, and 4.0

🤖 Generated with Claude Code

eclectic-coding and others added 8 commits May 18, 2026 14:45
…s clickable

Each stat card on the dashboard now links directly to its filtered jobs view,
queues, or processes page. The release job in CI now creates a GitHub Release
with CHANGELOG notes when a version tag is pushed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Individual discard removes the row in place without a full page reload.
When the last job on the view is discarded the card swaps to an empty
state. HTML fallback (redirect) is preserved for non-Turbo requests.
Adds turbo-rails as a gem dependency and explicit require in engine.rb.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…hing

Status filter tabs, queue filter links, Discard All button, and pagination
are all inside the frame so clicking any of them replaces only the table
area without a full page reload. The Jobs h1 stays static above the frame.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…DELS hash

Single hash constant covers both the index query and the execution_model_for!
guard, removing two case statements and making the mapping explicit.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…pe helper

Removes param re-reading and duplicated scope building from destroy and
discard_all. Both actions now share the same @status/@Queue setup and
delegate filtered scope construction to a single private method.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add error rescue path tests for jobs, failed_jobs, and queues controllers.
Cover derive_status scheduled and finished branches via show action.
Cover authentication block execution and HTTP basic auth fallback.
Filter boilerplate application_job and application_record from SimpleCov.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@eclectic-coding eclectic-coding merged commit 051dfe4 into main May 18, 2026
5 checks passed
@eclectic-coding eclectic-coding deleted the chore/maintenance branch May 18, 2026 19:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant