From 729a992f3139c628b61a9aa9a6bfa215494843d4 Mon Sep 17 00:00:00 2001 From: Michael Squance Date: Fri, 7 Mar 2025 15:47:36 +0000 Subject: [PATCH 01/10] First pass at a component generator which will make all the required files for a strapi component --- lib/generators/strapi/component_generator.rb | 48 +++++++++++++++++++ .../mapping_template.rb.tt | 19 ++++++++ .../component_templates/mock_template.rb.tt | 19 ++++++++ .../component_templates/query_template.rb.tt | 23 +++++++++ .../query_test_template.rb.tt | 10 ++++ 5 files changed, 119 insertions(+) create mode 100644 lib/generators/strapi/component_generator.rb create mode 100644 lib/generators/strapi/component_templates/mapping_template.rb.tt create mode 100644 lib/generators/strapi/component_templates/mock_template.rb.tt create mode 100644 lib/generators/strapi/component_templates/query_template.rb.tt create mode 100644 lib/generators/strapi/component_templates/query_test_template.rb.tt diff --git a/lib/generators/strapi/component_generator.rb b/lib/generators/strapi/component_generator.rb new file mode 100644 index 0000000000..58aa2c2c18 --- /dev/null +++ b/lib/generators/strapi/component_generator.rb @@ -0,0 +1,48 @@ +module Strapi + class ComponentGenerator < Rails::Generators::Base + source_root File.expand_path("component_templates", __dir__) + + class_option :component_name, type: :string + class_option :component_type, type: :string + class_option :strapi_params, type: :array, default: [] + + COMPONENT_TYPES = %w[blocks content_blocks buttons email_content] + PROVIDER = "providers/strapi/" + BASE_PATH = "app/services/cms/" + STRAPI_PATH = "#{BASE_PATH}#{PROVIDER}" + TEST_PATH = "app/sevices/spec/#{PROVIDER}" + + def setup_params + raise Exception unless COMPONENT_TYPES.include?(options["component_type"]) + @component_name_class = options["component_name"].classify + @component_type_class = options["component_type"].camelize + @component_filename = options["component_name"].underscore + @component_type_filename = options["component_type"].underscore + @component_strapi_name = options["component_name"].underscore.tr("_", "-") + @strapi_params = options["strapi_params"] + @rails_param_names = options["strapi_params"].map{ _1.underscore } + end + + def create_query_file + template("query_template.rb.tt", "#{STRAPI_PATH}queries/components/#{@component_type_filename}/#{@component_filename}.rb") + end + + def create_query_test + template("query_test_template.rb.tt", "#{TEST_PATH}queries/components/#{@component_type_filename}/#{@component_filename}_spec.rb") + end + + def create_mock_file + template("mock_template.rb.tt", "#{STRAPI_PATH}mocks/dynamic_components/#{@component_type_filename}/#{@component_filename}.rb") + end + + def create_data_file + template("mapping_template.rb.tt", "#{BASE_PATH}dynamic_components/#{@component_type_filename}/#{@component_filename}.rb") + end + + def run_other_generators + generate "component Cms::#{@component_name_class} #{@rails_param_names.join(" ")} --test-framework=rspec" + end + + end + +end diff --git a/lib/generators/strapi/component_templates/mapping_template.rb.tt b/lib/generators/strapi/component_templates/mapping_template.rb.tt new file mode 100644 index 0000000000..9dc1f88101 --- /dev/null +++ b/lib/generators/strapi/component_templates/mapping_template.rb.tt @@ -0,0 +1,19 @@ +module Cms + module DynamicComponents + module <%= @component_type_class %> + class <%= @component_name_class %> + attr_accessor <%= @rails_param_names.map{":#{_1}"}.join(", ") %> + + def initialize(<%= @rails_param_names.map{"#{_1}:"}.join(", ") %>) + <%- @rails_param_names.each do |param| -%> + <%= "@#{param} = #{param}" %> + <%- end -%> + end + + def render + Cms::<%= @component_name_class %>Component.new(<%= @rails_param_names.map{"#{_1}:"}.join(", ") %>) + end + end + end + end +end diff --git a/lib/generators/strapi/component_templates/mock_template.rb.tt b/lib/generators/strapi/component_templates/mock_template.rb.tt new file mode 100644 index 0000000000..f7b7c802a4 --- /dev/null +++ b/lib/generators/strapi/component_templates/mock_template.rb.tt @@ -0,0 +1,19 @@ +module Cms + module Providers + module Strapi + module Mocks + module DynamicComponents + module <%= @component_type_class %> + class <%= @component_name_class %> < StrapiMock + strapi_component "blocks.<%= @component_strapi_name %>" + + <%- @strapi_params.each do |param| -%> + attribute(:<%= param %>) { } + <%- end -%> + end + end + end + end + end + end +end \ No newline at end of file diff --git a/lib/generators/strapi/component_templates/query_template.rb.tt b/lib/generators/strapi/component_templates/query_template.rb.tt new file mode 100644 index 0000000000..1f9aa6ccfd --- /dev/null +++ b/lib/generators/strapi/component_templates/query_template.rb.tt @@ -0,0 +1,23 @@ +module Cms + module Providers + module Strapi + module Queries + module Components + module <%= @component_type_class %> + class <%= @component_name_class %> < BaseComponentQuery + def self.name = "Component<%= @component_name_class %>" + + def self.base_fields + <<~GRAPHQL.freeze + <%- @strapi_params.each do |param| -%> + <%= param %> + <%- end -%> + GRAPHQL + end + end + end + end + end + end + end +end diff --git a/lib/generators/strapi/component_templates/query_test_template.rb.tt b/lib/generators/strapi/component_templates/query_test_template.rb.tt new file mode 100644 index 0000000000..ee1870e28f --- /dev/null +++ b/lib/generators/strapi/component_templates/query_test_template.rb.tt @@ -0,0 +1,10 @@ +require "rails_helper" + +RSpec.describe Cms::Providers::Strapi::Queries::Components::<%= @component_type_class %>::<%= @component_name_class %> do + it_should_behave_like "a strapi graphql component", + %w[ + <%- @strapi_params.each do |param| -%> + <%= param %> + <%- end -%> + ] +end From 9de7725de8e88c2a460d924b4f82d88174406604 Mon Sep 17 00:00:00 2001 From: Michael Squance Date: Fri, 7 Mar 2025 15:52:15 +0000 Subject: [PATCH 02/10] Fixing standardrb errors --- lib/generators/strapi/component_generator.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/generators/strapi/component_generator.rb b/lib/generators/strapi/component_generator.rb index 58aa2c2c18..edf5a3599e 100644 --- a/lib/generators/strapi/component_generator.rb +++ b/lib/generators/strapi/component_generator.rb @@ -13,14 +13,14 @@ class ComponentGenerator < Rails::Generators::Base TEST_PATH = "app/sevices/spec/#{PROVIDER}" def setup_params - raise Exception unless COMPONENT_TYPES.include?(options["component_type"]) + raise StandardError unless COMPONENT_TYPES.include?(options["component_type"]) @component_name_class = options["component_name"].classify @component_type_class = options["component_type"].camelize @component_filename = options["component_name"].underscore @component_type_filename = options["component_type"].underscore @component_strapi_name = options["component_name"].underscore.tr("_", "-") @strapi_params = options["strapi_params"] - @rails_param_names = options["strapi_params"].map{ _1.underscore } + @rails_param_names = options["strapi_params"].map { _1.underscore } end def create_query_file @@ -42,7 +42,5 @@ def create_data_file def run_other_generators generate "component Cms::#{@component_name_class} #{@rails_param_names.join(" ")} --test-framework=rspec" end - end - end From fe4c8bbbc1355f28fbed7575d239da19b8d37b15 Mon Sep 17 00:00:00 2001 From: Michael Squance Date: Fri, 7 Mar 2025 15:56:57 +0000 Subject: [PATCH 03/10] Moving files to see if the module is causing problems with circleci --- .../{strapi => strapi_generator}/component_generator.rb | 2 +- .../component_templates/mapping_template.rb.tt | 0 .../component_templates/mock_template.rb.tt | 0 .../component_templates/query_template.rb.tt | 0 .../component_templates/query_test_template.rb.tt | 0 5 files changed, 1 insertion(+), 1 deletion(-) rename lib/generators/{strapi => strapi_generator}/component_generator.rb (98%) rename lib/generators/{strapi => strapi_generator}/component_templates/mapping_template.rb.tt (100%) rename lib/generators/{strapi => strapi_generator}/component_templates/mock_template.rb.tt (100%) rename lib/generators/{strapi => strapi_generator}/component_templates/query_template.rb.tt (100%) rename lib/generators/{strapi => strapi_generator}/component_templates/query_test_template.rb.tt (100%) diff --git a/lib/generators/strapi/component_generator.rb b/lib/generators/strapi_generator/component_generator.rb similarity index 98% rename from lib/generators/strapi/component_generator.rb rename to lib/generators/strapi_generator/component_generator.rb index edf5a3599e..68adf973f4 100644 --- a/lib/generators/strapi/component_generator.rb +++ b/lib/generators/strapi_generator/component_generator.rb @@ -1,4 +1,4 @@ -module Strapi +module StrapiGenerator class ComponentGenerator < Rails::Generators::Base source_root File.expand_path("component_templates", __dir__) diff --git a/lib/generators/strapi/component_templates/mapping_template.rb.tt b/lib/generators/strapi_generator/component_templates/mapping_template.rb.tt similarity index 100% rename from lib/generators/strapi/component_templates/mapping_template.rb.tt rename to lib/generators/strapi_generator/component_templates/mapping_template.rb.tt diff --git a/lib/generators/strapi/component_templates/mock_template.rb.tt b/lib/generators/strapi_generator/component_templates/mock_template.rb.tt similarity index 100% rename from lib/generators/strapi/component_templates/mock_template.rb.tt rename to lib/generators/strapi_generator/component_templates/mock_template.rb.tt diff --git a/lib/generators/strapi/component_templates/query_template.rb.tt b/lib/generators/strapi_generator/component_templates/query_template.rb.tt similarity index 100% rename from lib/generators/strapi/component_templates/query_template.rb.tt rename to lib/generators/strapi_generator/component_templates/query_template.rb.tt diff --git a/lib/generators/strapi/component_templates/query_test_template.rb.tt b/lib/generators/strapi_generator/component_templates/query_test_template.rb.tt similarity index 100% rename from lib/generators/strapi/component_templates/query_test_template.rb.tt rename to lib/generators/strapi_generator/component_templates/query_test_template.rb.tt From 81f8424f72e484379e139e304ed6240ee02745bc Mon Sep 17 00:00:00 2001 From: Michael Squance Date: Fri, 7 Mar 2025 16:01:50 +0000 Subject: [PATCH 04/10] Adding in require and putting name back --- .../{strapi_generator => strapi}/component_generator.rb | 4 +++- .../component_templates/mapping_template.rb.tt | 0 .../component_templates/mock_template.rb.tt | 0 .../component_templates/query_template.rb.tt | 0 .../component_templates/query_test_template.rb.tt | 0 5 files changed, 3 insertions(+), 1 deletion(-) rename lib/generators/{strapi_generator => strapi}/component_generator.rb (97%) rename lib/generators/{strapi_generator => strapi}/component_templates/mapping_template.rb.tt (100%) rename lib/generators/{strapi_generator => strapi}/component_templates/mock_template.rb.tt (100%) rename lib/generators/{strapi_generator => strapi}/component_templates/query_template.rb.tt (100%) rename lib/generators/{strapi_generator => strapi}/component_templates/query_test_template.rb.tt (100%) diff --git a/lib/generators/strapi_generator/component_generator.rb b/lib/generators/strapi/component_generator.rb similarity index 97% rename from lib/generators/strapi_generator/component_generator.rb rename to lib/generators/strapi/component_generator.rb index 68adf973f4..3e95fe5092 100644 --- a/lib/generators/strapi_generator/component_generator.rb +++ b/lib/generators/strapi/component_generator.rb @@ -1,4 +1,6 @@ -module StrapiGenerator +require 'rails/generators' + +module Strapi class ComponentGenerator < Rails::Generators::Base source_root File.expand_path("component_templates", __dir__) diff --git a/lib/generators/strapi_generator/component_templates/mapping_template.rb.tt b/lib/generators/strapi/component_templates/mapping_template.rb.tt similarity index 100% rename from lib/generators/strapi_generator/component_templates/mapping_template.rb.tt rename to lib/generators/strapi/component_templates/mapping_template.rb.tt diff --git a/lib/generators/strapi_generator/component_templates/mock_template.rb.tt b/lib/generators/strapi/component_templates/mock_template.rb.tt similarity index 100% rename from lib/generators/strapi_generator/component_templates/mock_template.rb.tt rename to lib/generators/strapi/component_templates/mock_template.rb.tt diff --git a/lib/generators/strapi_generator/component_templates/query_template.rb.tt b/lib/generators/strapi/component_templates/query_template.rb.tt similarity index 100% rename from lib/generators/strapi_generator/component_templates/query_template.rb.tt rename to lib/generators/strapi/component_templates/query_template.rb.tt diff --git a/lib/generators/strapi_generator/component_templates/query_test_template.rb.tt b/lib/generators/strapi/component_templates/query_test_template.rb.tt similarity index 100% rename from lib/generators/strapi_generator/component_templates/query_test_template.rb.tt rename to lib/generators/strapi/component_templates/query_test_template.rb.tt From 826a89443424dc67c2a34d14c5a6e5610ab3233d Mon Sep 17 00:00:00 2001 From: Michael Squance Date: Fri, 7 Mar 2025 16:07:16 +0000 Subject: [PATCH 05/10] Ignoring generators on autoload --- config/application.rb | 2 +- lib/generators/strapi/component_generator.rb | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/config/application.rb b/config/application.rb index b664729b81..4ea9b3abba 100644 --- a/config/application.rb +++ b/config/application.rb @@ -19,7 +19,7 @@ class Application < Rails::Application # Please, add to the `ignore` list any other `lib` subdirectories that do # not contain `.rb` files, or that should not be reloaded or eager loaded. # Common ones are `templates`, `generators`, or `middleware`, for example. - config.autoload_lib(ignore: %w[assets tasks]) + config.autoload_lib(ignore: %w[assets tasks generators]) # Settings in config/environments/* take precedence over those specified here. # Application configuration can go into files in config/initializers diff --git a/lib/generators/strapi/component_generator.rb b/lib/generators/strapi/component_generator.rb index 3e95fe5092..edf5a3599e 100644 --- a/lib/generators/strapi/component_generator.rb +++ b/lib/generators/strapi/component_generator.rb @@ -1,5 +1,3 @@ -require 'rails/generators' - module Strapi class ComponentGenerator < Rails::Generators::Base source_root File.expand_path("component_templates", __dir__) From 67dfcd3c1e8d4ab1fa97e3fc52d4304e6c98d96a Mon Sep 17 00:00:00 2001 From: Michael Squance Date: Fri, 7 Mar 2025 16:53:30 +0000 Subject: [PATCH 06/10] Adding some output to help with the files I cannot modify easily in the generator --- lib/generators/strapi/component_generator.rb | 36 ++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/lib/generators/strapi/component_generator.rb b/lib/generators/strapi/component_generator.rb index edf5a3599e..799cc61ef1 100644 --- a/lib/generators/strapi/component_generator.rb +++ b/lib/generators/strapi/component_generator.rb @@ -42,5 +42,41 @@ def create_data_file def run_other_generators generate "component Cms::#{@component_name_class} #{@rails_param_names.join(" ")} --test-framework=rspec" end + + def print_method_defintions + puts <<~HEREDOC + + #{"*" * 80} + + Remember to add the mapping method to #{STRAPI_PATH}factories/#{@component_type_filename}_factory.rb + + !! Code provided below, but may require modification depending on data types !! + + #{factory_key} + #{"-" * 80} + + #{method_defintion} + #{"*" * 80} + + HEREDOC + end + + def factory_key + <<~RUBY + when "#{@component_strapi_name}": + to_#{@component_filename}(strapi_data) + RUBY + end + + def method_defintion + <<~RUBY + def to_#{@component_filename}(strapi_data) + DynamicsComponents::Blocks::#{@component_name_class}.new( + #{@strapi_params.map{"#{_1.underscore}: strapi_data[:#{_1}]"}.join(",\n\s\s\s\s")} + ) + end + RUBY + end + end end From c2af4debeb44db414dfa909d5a8c5af706925bf9 Mon Sep 17 00:00:00 2001 From: Michael Squance Date: Mon, 10 Mar 2025 09:21:55 +0000 Subject: [PATCH 07/10] Standard fixes --- lib/generators/strapi/component_generator.rb | 21 ++++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/lib/generators/strapi/component_generator.rb b/lib/generators/strapi/component_generator.rb index 799cc61ef1..d9c57593f7 100644 --- a/lib/generators/strapi/component_generator.rb +++ b/lib/generators/strapi/component_generator.rb @@ -46,25 +46,25 @@ def run_other_generators def print_method_defintions puts <<~HEREDOC - #{"*" * 80} + #{"*" * 80} - Remember to add the mapping method to #{STRAPI_PATH}factories/#{@component_type_filename}_factory.rb + Remember to add the mapping method to #{STRAPI_PATH}factories/#{@component_type_filename}_factory.rb - !! Code provided below, but may require modification depending on data types !! + !! Code provided below, but may require modification depending on data types !! - #{factory_key} - #{"-" * 80} + #{factory_key} + #{"-" * 80} - #{method_defintion} - #{"*" * 80} + #{method_defintion} + #{"*" * 80} HEREDOC end def factory_key <<~RUBY - when "#{@component_strapi_name}": - to_#{@component_filename}(strapi_data) + when "#{@component_strapi_name}": + to_#{@component_filename}(strapi_data) RUBY end @@ -72,11 +72,10 @@ def method_defintion <<~RUBY def to_#{@component_filename}(strapi_data) DynamicsComponents::Blocks::#{@component_name_class}.new( - #{@strapi_params.map{"#{_1.underscore}: strapi_data[:#{_1}]"}.join(",\n\s\s\s\s")} + #{@strapi_params.map { "#{_1.underscore}: strapi_data[:#{_1}]" }.join(",\n\s\s\s\s")} ) end RUBY end - end end From 721063220f431ba62dd9a736ad0dc225ac704d6d Mon Sep 17 00:00:00 2001 From: Michael Squance Date: Mon, 10 Mar 2025 13:45:43 +0000 Subject: [PATCH 08/10] Adding the generator_spec gem to help with generator spec testing Adding tests for the generator --- Gemfile | 1 + Gemfile.lock | 4 ++ lib/generators/strapi/component_generator.rb | 37 ++++++++---- .../strapi/component_generator_spec.rb | 58 +++++++++++++++++++ 4 files changed, 89 insertions(+), 11 deletions(-) create mode 100644 spec/lib/generators/strapi/component_generator_spec.rb diff --git a/Gemfile b/Gemfile index d438b1724b..7a7d4b4980 100644 --- a/Gemfile +++ b/Gemfile @@ -105,6 +105,7 @@ group :test do gem "axe-matchers", ">= 2.5.0", require: false gem "capybara" gem "climate_control" + gem "generator_spec" gem "guard-rspec", require: false gem "rails-controller-testing" gem "rspec-json_expectations" diff --git a/Gemfile.lock b/Gemfile.lock index 124e4c8323..8e39d21d30 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -276,6 +276,9 @@ GEM fog-core nokogiri (>= 1.5.11, < 2.0.0) formatador (1.1.0) + generator_spec (0.10.0) + activesupport (>= 3.0.0) + railties (>= 3.0.0) geocoder (1.8.2) globalid (1.2.1) activesupport (>= 6.1) @@ -777,6 +780,7 @@ DEPENDENCIES faker faraday fog-aws + generator_spec geocoder (>= 1.6.6) graphlient graphql diff --git a/lib/generators/strapi/component_generator.rb b/lib/generators/strapi/component_generator.rb index d9c57593f7..b582efc4a5 100644 --- a/lib/generators/strapi/component_generator.rb +++ b/lib/generators/strapi/component_generator.rb @@ -2,23 +2,23 @@ module Strapi class ComponentGenerator < Rails::Generators::Base source_root File.expand_path("component_templates", __dir__) - class_option :component_name, type: :string - class_option :component_type, type: :string + argument :component_name, type: :string, required: true + argument :component_type, type: :string, required: true class_option :strapi_params, type: :array, default: [] COMPONENT_TYPES = %w[blocks content_blocks buttons email_content] PROVIDER = "providers/strapi/" BASE_PATH = "app/services/cms/" STRAPI_PATH = "#{BASE_PATH}#{PROVIDER}" - TEST_PATH = "app/sevices/spec/#{PROVIDER}" + TEST_PATH = "spec/services/cms/#{PROVIDER}" def setup_params - raise StandardError unless COMPONENT_TYPES.include?(options["component_type"]) - @component_name_class = options["component_name"].classify - @component_type_class = options["component_type"].camelize - @component_filename = options["component_name"].underscore - @component_type_filename = options["component_type"].underscore - @component_strapi_name = options["component_name"].underscore.tr("_", "-") + raise StandardError unless COMPONENT_TYPES.include?(component_type) + @component_name_class = component_name.classify + @component_type_class = component_type.camelize + @component_filename = component_name.underscore + @component_type_filename = component_type.underscore + @component_strapi_name = component_name.underscore.tr("_", "-") @strapi_params = options["strapi_params"] @rails_param_names = options["strapi_params"].map { _1.underscore } end @@ -39,8 +39,23 @@ def create_data_file template("mapping_template.rb.tt", "#{BASE_PATH}dynamic_components/#{@component_type_filename}/#{@component_filename}.rb") end - def run_other_generators - generate "component Cms::#{@component_name_class} #{@rails_param_names.join(" ")} --test-framework=rspec" + def run_view_component_generator + params = @rails_param_names.join(" ").presence + Rails::Generators.invoke( + "component", + ["Cms::#{@component_name_class}", params, "--test-framework=rspec", "--sidecar"].compact, + behaviour: :invoke, + destination_root: + ) + rescue + puts <<~HEREDOC + #{"*" * 80} + Unable to create component, please run this command seperatly + + rails generate component Cms::#{@component_name_class} #{@rails_param_names.join(" ")} --test-framework=rspec + #{"*" * 80} + + HEREDOC end def print_method_defintions diff --git a/spec/lib/generators/strapi/component_generator_spec.rb b/spec/lib/generators/strapi/component_generator_spec.rb new file mode 100644 index 0000000000..b425a16ec8 --- /dev/null +++ b/spec/lib/generators/strapi/component_generator_spec.rb @@ -0,0 +1,58 @@ +require "rails_helper" +require "generator_spec" +require "generators/strapi/component_generator" + +RSpec.describe Strapi::ComponentGenerator, type: :generator do + let(:tmp_dir) { Rails.root.join("tmp/gen_test") } + tests Strapi::ComponentGenerator + destination Rails.root.join("tmp/gen_test") + + before do + FileUtils.rm_rf(tmp_dir) + prepare_destination + end + + after do + FileUtils.rm_rf(tmp_dir) + end + + context "with all arguments" do + before do + run_generator %w[gen_test blocks --strapi-params=title textContent] + end + + it "creates the query file" do + expect(File).to exist(file_path("app/services/cms/providers/strapi/queries/components/blocks/gen_test.rb")) + end + + it "creates the query test file" do + expect(File).to exist(file_path("spec/services/cms/providers/strapi/queries/components/blocks/gen_test_spec.rb")) + end + + it "creates data file" do + expect(File).to exist(file_path("app/services/cms/dynamic_components/blocks/gen_test.rb")) + end + + it "creates mock file" do + expect(File).to exist(file_path("app/services/cms/providers/strapi/mocks/dynamic_components/blocks/gen_test.rb")) + end + + it "creates component file" do + expect(File).to exist(file_path("app/components/cms/gen_test_component.rb")) + expect(File).to exist(file_path("app/components/cms/gen_test_component/gen_test_component.html.erb")) + expect(File).to exist(file_path("spec/components/cms/gen_test_component_spec.rb")) + end + + def file_path(file) + "tmp/gen_test/#{file}" + end + end + + context "with invalid type" do + it "creates the query file" do + expect { + run_generator %w[gen_test not-a-type --strapi-params=title textContent] + }.to raise_error + end + end +end From 74f3e92600d68a222e9122b1a4198abe6d09a01d Mon Sep 17 00:00:00 2001 From: Michael Squance Date: Mon, 10 Mar 2025 13:59:28 +0000 Subject: [PATCH 09/10] Adding more specific error testing as per rspec's complaint --- spec/lib/generators/strapi/component_generator_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/lib/generators/strapi/component_generator_spec.rb b/spec/lib/generators/strapi/component_generator_spec.rb index b425a16ec8..9aea55074b 100644 --- a/spec/lib/generators/strapi/component_generator_spec.rb +++ b/spec/lib/generators/strapi/component_generator_spec.rb @@ -52,7 +52,7 @@ def file_path(file) it "creates the query file" do expect { run_generator %w[gen_test not-a-type --strapi-params=title textContent] - }.to raise_error + }.to raise_error(StandardError) end end end From aa130756f54e3d1d12e0b166069abc9d888b3462 Mon Sep 17 00:00:00 2001 From: Michael Squance Date: Mon, 10 Mar 2025 14:04:17 +0000 Subject: [PATCH 10/10] Fixing passing of params to component invoke method --- lib/generators/strapi/component_generator.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/generators/strapi/component_generator.rb b/lib/generators/strapi/component_generator.rb index b582efc4a5..ce693f3c1a 100644 --- a/lib/generators/strapi/component_generator.rb +++ b/lib/generators/strapi/component_generator.rb @@ -40,10 +40,9 @@ def create_data_file end def run_view_component_generator - params = @rails_param_names.join(" ").presence Rails::Generators.invoke( "component", - ["Cms::#{@component_name_class}", params, "--test-framework=rspec", "--sidecar"].compact, + ["Cms::#{@component_name_class}", *@rails_param_names, "--test-framework=rspec", "--sidecar"].compact, behaviour: :invoke, destination_root: )