lib/rails/generators/rspec/component_generator.rb
# frozen_string_literal: true require "rails/generators/abstract_generator" module Rspec module Generators class ComponentGenerator < ::Rails::Generators::NamedBase include ViewComponent::AbstractGenerator source_root File.expand_path("templates", __dir__) def create_test_file template "component_spec.rb", File.join(spec_component_path, class_path, "#{file_name}_component_spec.rb") end private def spec_component_path return "spec/components" unless ViewComponent::Base.config.generate.use_component_path_for_rspec_tests configured_component_path = component_path if configured_component_path.start_with?("app#{File::SEPARATOR}") _app, *rest_of_path = Pathname.new(configured_component_path).each_filename.to_a File.join("spec", *rest_of_path) else "spec/components" end end end end end