rails / dartsass-rails

Integrate Dart Sass with the asset pipeline in Rails
MIT License
211 stars 42 forks source link

`cannot load such file -- sassc` in spec and first load of dev page #37

Closed RobNicholsGDS closed 1 year ago

RobNicholsGDS commented 1 year ago

I have built two new rails 7.0.4 apps (ruby ruby 3.1.3p185) in the last couple of days, and with both of them I am getting cannot load such file -- sassc errors when I run request specs. I also notice that when I run the apps locally (via rails s) the error occurs on first attempt to load my home page. However, if I refresh the page twice the page renders successfully.

With the latest app I have only created a home controller (via rails g controller home index --no-view-specs --no-helper) as my first page, and it is the request spec created by the generator that is failing.

# frozen_string_literal: true

require 'rails_helper'

RSpec.describe 'Homes', type: :request do
  describe 'GET /' do
    it 'returns http success' do
      get root_path
      expect(response).to have_http_status(:success)
    end
  end
end

I have gone though the README options to fix this problem but they do not fix it. I have also tried rolling back to earlier versions of sprockets-rails (defaults to '4.1.1'. Tried rolling back as far as '3.3.0') and sprockets.

I built the latest app with:

rails new knowledge-hub --database=postgresql --skip-jbuilder skip-test --css=sass --skip-bundle

And manually added gem 'dartsass-rails' before running bundle. I thought the --css=sass might install Dart Sass but that didn't appear to be the case. I don't think it is clear in the documentation as to the css syntax to choose Dart Sass.

The only occurrences of sass in my Gemfile.lock are:

dartsass-rails (0.4.0)

and

DEPENDENCIES
  bootsnap
  capybara
  dartsass-rails

The full test error backtrace is:

Failures:

  1) Homes GET / returns http success
     Failure/Error: <%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>

     LoadError:
       cannot load such file -- sassc
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/autoload/sassc.rb:2:in `<main>'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/sassc_processor.rb:42:in `initialize'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/sassc_processor.rb:27:in `new'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/sassc_processor.rb:27:in `instance'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/sassc_processor.rb:31:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:84:in `call_processor'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:65:in `reverse_each'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:65:in `call_processors'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:22:in `block in <class:CompositeProcessor>'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:33:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:84:in `call_processor'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:65:in `reverse_each'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:65:in `call_processors'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/loader.rb:182:in `load_from_unloaded'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/loader.rb:59:in `block in load'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/loader.rb:337:in `fetch_asset_from_dependency_cache'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/loader.rb:43:in `load'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/cached_environment.rb:44:in `block in load'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/cached_environment.rb:44:in `fetch'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/cached_environment.rb:44:in `load'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/bundle.rb:27:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:84:in `call_processor'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:65:in `reverse_each'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:65:in `call_processors'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/loader.rb:182:in `load_from_unloaded'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/loader.rb:59:in `block in load'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/loader.rb:337:in `fetch_asset_from_dependency_cache'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/loader.rb:43:in `load'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/cached_environment.rb:44:in `block in load'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/cached_environment.rb:44:in `fetch'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/cached_environment.rb:44:in `load'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/bundle.rb:32:in `block in call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/3.1.0/set.rb:511:in `each_key'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/3.1.0/set.rb:511:in `each'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/bundle.rb:31:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:84:in `call_processor'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:65:in `reverse_each'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/processor_utils.rb:65:in `call_processors'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/loader.rb:182:in `load_from_unloaded'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/loader.rb:59:in `block in load'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/loader.rb:337:in `fetch_asset_from_dependency_cache'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/loader.rb:43:in `load'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/cached_environment.rb:44:in `block in load'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/cached_environment.rb:44:in `fetch'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/cached_environment.rb:44:in `load'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/base.rb:81:in `find_asset'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/base.rb:88:in `find_all_linked_assets'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/manifest.rb:125:in `each'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/manifest.rb:125:in `to_a'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/manifest.rb:125:in `block (2 levels) in find'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/concurrent-ruby-1.1.10/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:24:in `block in execute'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/concurrent-ruby-1.1.10/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:47:in `block in synchronize'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/concurrent-ruby-1.1.10/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:47:in `synchronize'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/concurrent-ruby-1.1.10/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:47:in `synchronize'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/concurrent-ruby-1.1.10/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:22:in `execute'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/concurrent-ruby-1.1.10/lib/concurrent-ruby/concurrent/promise.rb:564:in `block in realize'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/concurrent-ruby-1.1.10/lib/concurrent-ruby/concurrent/executor/immediate_executor.rb:29:in `post'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/concurrent-ruby-1.1.10/lib/concurrent-ruby/concurrent/promise.rb:563:in `realize'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/concurrent-ruby-1.1.10/lib/concurrent-ruby/concurrent/promise.rb:250:in `execute'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/concurrent-ruby-1.1.10/lib/concurrent-ruby/concurrent/promise.rb:297:in `execute'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/manifest.rb:124:in `block in find'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/manifest.rb:123:in `map'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-4.1.1/lib/sprockets/manifest.rb:123:in `find'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/railtie.rb:53:in `each'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/railtie.rb:53:in `map'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/railtie.rb:53:in `precompiled_assets'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/railtie.rb:38:in `asset_precompiled?'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/railtie.rb:266:in `block (3 levels) in <class:Railtie>'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/helper.rb:368:in `precompiled?'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/helper.rb:372:in `raise_unless_precompiled_asset'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/helper.rb:338:in `digest_path'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/helper.rb:326:in `asset_path'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/helper.rb:103:in `block in resolve_asset_path'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/helper.rb:243:in `block in resolve_asset'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/helper.rb:242:in `each'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/helper.rb:242:in `detect'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/helper.rb:242:in `resolve_asset'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/helper.rb:102:in `resolve_asset_path'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/helper.rb:80:in `compute_asset_path'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/helpers/asset_url_helper.rb:203:in `asset_path'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/helpers/asset_url_helper.rb:348:in `stylesheet_path'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/helpers/asset_tag_helper.rb:180:in `block in stylesheet_link_tag'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/helpers/asset_tag_helper.rb:179:in `map'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/helpers/asset_tag_helper.rb:179:in `stylesheet_link_tag'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/helper.rb:186:in `block in stylesheet_link_tag'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/helper.rb:184:in `map'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/helper.rb:184:in `stylesheet_link_tag'
     # ./app/views/layouts/application.html.erb:9:in `_app_views_layouts_application_html_erb__1910033771923689270_24460'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/base.rb:244:in `public_send'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/base.rb:244:in `_run'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/template.rb:157:in `block in render'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/notifications.rb:208:in `instrument'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/template.rb:361:in `instrument_render_template'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/template.rb:155:in `render'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/renderer/template_renderer.rb:76:in `block in render_with_layout'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/notifications.rb:206:in `block in instrument'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/notifications.rb:206:in `instrument'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/renderer/template_renderer.rb:74:in `render_with_layout'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/renderer/template_renderer.rb:59:in `render_template'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/renderer/template_renderer.rb:11:in `render'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/renderer/renderer.rb:61:in `render_template_to_object'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/renderer/renderer.rb:29:in `render_to_object'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/rendering.rb:117:in `block in _render_template'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/base.rb:270:in `in_rendering_context'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/rendering.rb:116:in `_render_template'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal/streaming.rb:216:in `_render_template'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/rendering.rb:103:in `render_to_body'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal/rendering.rb:46:in `render_to_body'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal/renderers.rb:141:in `render_to_body'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/abstract_controller/rendering.rb:25:in `render'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal/rendering.rb:30:in `render'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal/instrumentation.rb:22:in `block (2 levels) in render'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/3.1.0/benchmark.rb:311:in `realtime'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/core_ext/benchmark.rb:14:in `ms'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal/instrumentation.rb:22:in `block in render'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal/instrumentation.rb:91:in `cleanup_view_runtime'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activerecord-7.0.4/lib/active_record/railties/controller_runtime.rb:34:in `cleanup_view_runtime'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal/instrumentation.rb:21:in `render'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal/implicit_render.rb:35:in `default_render'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal/basic_implicit_render.rb:6:in `block in send_action'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/abstract_controller/base.rb:215:in `process_action'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal/rendering.rb:53:in `process_action'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/abstract_controller/callbacks.rb:234:in `block in process_action'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actiontext-7.0.4/lib/action_text/rendering.rb:20:in `with_renderer'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actiontext-7.0.4/lib/action_text/engine.rb:69:in `block (4 levels) in <class:Engine>'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/callbacks.rb:127:in `instance_exec'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/callbacks.rb:127:in `block in run_callbacks'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/callbacks.rb:138:in `run_callbacks'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/abstract_controller/callbacks.rb:233:in `process_action'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal/rescue.rb:22:in `process_action'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/notifications.rb:206:in `block in instrument'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/notifications.rb:206:in `instrument'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal/instrumentation.rb:66:in `process_action'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activerecord-7.0.4/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/abstract_controller/base.rb:151:in `process'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionview-7.0.4/lib/action_view/rendering.rb:39:in `process'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal.rb:188:in `dispatch'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_controller/metal.rb:251:in `dispatch'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/routing/route_set.rb:32:in `serve'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/journey/router.rb:50:in `block in serve'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/journey/router.rb:32:in `each'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/journey/router.rb:32:in `serve'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/routing/route_set.rb:852:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-2.2.6/lib/rack/tempfile_reaper.rb:15:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-2.2.6/lib/rack/etag.rb:27:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-2.2.6/lib/rack/conditional_get.rb:27:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-2.2.6/lib/rack/head.rb:12:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/http/permissions_policy.rb:38:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/http/content_security_policy.rb:36:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-2.2.6/lib/rack/session/abstract/id.rb:266:in `context'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-2.2.6/lib/rack/session/abstract/id.rb:260:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/middleware/cookies.rb:696:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/callbacks.rb:99:in `run_callbacks'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/middleware/actionable_exceptions.rb:17:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/middleware/show_exceptions.rb:26:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/railties-7.0.4/lib/rails/rack/logger.rb:40:in `call_app'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/railties-7.0.4/lib/rails/rack/logger.rb:25:in `block in call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/tagged_logging.rb:99:in `block in tagged'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/tagged_logging.rb:37:in `tagged'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/tagged_logging.rb:99:in `tagged'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/railties-7.0.4/lib/rails/rack/logger.rb:25:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/middleware/request_id.rb:26:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-2.2.6/lib/rack/method_override.rb:24:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-2.2.6/lib/rack/runtime.rb:22:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.0.4/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/middleware/executor.rb:14:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/middleware/static.rb:23:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-2.2.6/lib/rack/sendfile.rb:110:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/middleware/host_authorization.rb:131:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/railties-7.0.4/lib/rails/engine.rb:530:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-test-2.0.2/lib/rack/test.rb:358:in `process_request'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-test-2.0.2/lib/rack/test.rb:155:in `request'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/testing/integration.rb:279:in `process'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/testing/integration.rb:16:in `get'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/actionpack-7.0.4/lib/action_dispatch/testing/integration.rb:370:in `get'
     # ./spec/requests/home_spec.rb:8:in `block (3 levels) in <top (required)>'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `instance_exec'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `block in run'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:511:in `block in with_around_and_singleton_context_hooks'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:468:in `block in with_around_example_hooks'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/hooks.rb:486:in `block in run'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/hooks.rb:626:in `block in run_around_example_hooks_for'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:352:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-rails-6.0.1/lib/rspec/rails/adapters.rb:75:in `block (2 levels) in <module:MinitestLifecycleAdapter>'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:457:in `instance_exec'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:457:in `instance_exec'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/hooks.rb:390:in `execute_with'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/hooks.rb:628:in `block (2 levels) in run_around_example_hooks_for'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:352:in `call'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/hooks.rb:629:in `run_around_example_hooks_for'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/hooks.rb:486:in `run'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:468:in `with_around_example_hooks'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:511:in `with_around_and_singleton_context_hooks'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:259:in `run'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:646:in `block in run_examples'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:642:in `map'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:642:in `run_examples'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:607:in `run'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `block in run'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `map'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `run'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:121:in `map'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/configuration.rb:2070:in `with_suite_hooks'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:116:in `block in run_specs'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/reporter.rb:74:in `report'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:115:in `run_specs'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:89:in `run'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:71:in `run'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-core-3.12.0/exe/rspec:4:in `<top (required)>'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/bin/rspec:25:in `load'
     # /Users/robert.nichols/.rbenv/versions/3.1.3/bin/rspec:25:in `<main>'

Finished in 0.62344 seconds (files took 1.97 seconds to load)
1 example, 1 failure

Failed examples:

rspec ./spec/requests/home_spec.rb:7 # Homes GET / returns http success

manifest.js contains just these two lines:

//= link_tree ../images
//= link_tree ../builds

I have run bundle exec rails dartsass:build successfully a number of times. app/assets/stylesheets/application.scss contains just the comment //Sassy. I have added the following just to check the CSS builds correctly:

.foo {
  color: red;
}

And that generated the expected app/assets/builds/application.css:

.foo{color:red}
RobNicholsGDS commented 1 year ago

I have added a second controller to the app via scaffold. All specs are now passing. I think the issue may only appear if there is only one request spec.

RobNicholsGDS commented 1 year ago

I am having this problem again. The problem seems to be related to tmp cache. If I run rails tmp:clear then the first spec run gets this error. In doing this, the tmp cache is built and subsequently specs run without an issue.

RobNicholsGDS commented 1 year ago

This is horribly hacky but I'm currently "fixing" this problem with a helper method that I wrap around the first calls to assets in the application template.

  def catch_load_error
    yield
  rescue LoadError
    sleep 0.1
    retry
  end

This catches the initial load error and waits long enough for the tmp/cache to be built before retrying.

RobNicholsGDS commented 1 year ago

I think I've finally worked out what the problem was: I had sprockets-rails installed. Sprockets appears to have a dependence on sassc and that was causing the problem.

I've updated my app to use propshaft and the problem has gone away.