diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3604d72a..be1ef061 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,21 +17,17 @@ jobs: fail-fast: false matrix: ruby-version: - - "3.1" - "3.2" - "3.3" + - "3.4" alchemy: - - "7.2-stable" - - "7.3-stable" - - "7.4-stable" + - "8.0-stable" solidus: - - "v4.1" - - "v4.2" - - "v4.3" - "v4.4" env: ALCHEMY_BRANCH: ${{ matrix.alchemy }} SOLIDUS_BRANCH: ${{ matrix.solidus }} + SOLIDUS_SKIP_MIGRATIONS_CHECK: true steps: - uses: actions/checkout@v4 - name: Set up Ruby diff --git a/Gemfile b/Gemfile index 8e906387..27651174 100644 --- a/Gemfile +++ b/Gemfile @@ -5,15 +5,14 @@ gem "solidus_core", github: "solidusio/solidus", branch: solidus_branch gem "solidus_backend", github: "solidusio/solidus", branch: solidus_branch gem "solidus_frontend", github: "solidusio/solidus_frontend", branch: "main" -alchemy_branch = ENV.fetch("ALCHEMY_BRANCH", "7.4-stable") +alchemy_branch = ENV.fetch("ALCHEMY_BRANCH", "8.0-stable") gem "alchemy_cms", github: "AlchemyCMS/alchemy_cms", branch: alchemy_branch - -gem "alchemy-devise", github: "AlchemyCMS/alchemy-devise", branch: "7.4-stable" +gem "alchemy-devise", github: "AlchemyCMS/alchemy-devise", branch: alchemy_branch # Specify your gem's dependencies in alchemy-solidus.gemspec gemspec -gem "sqlite3", "~> 1.4" +gem "sqlite3", "~> 2.7" gem "pry-rails" gem "sprockets", "~> 4.0" gem "jsbundling-rails", "~> 1.1" @@ -36,3 +35,5 @@ group :lint do gem "rubocop", require: false gem "standard", "~> 1.25", require: false end + +gem "ruby-lsp-rspec", "~> 0.1.28" diff --git a/alchemy-solidus.gemspec b/alchemy-solidus.gemspec index 9fe734a8..e022bcd6 100644 --- a/alchemy-solidus.gemspec +++ b/alchemy-solidus.gemspec @@ -14,13 +14,14 @@ Gem::Specification.new do |gem| gem.require_paths = ["lib"] gem.version = Alchemy::Solidus::VERSION - gem.add_dependency("alchemy_cms", [">= 7.2.0", "< 8"]) + gem.add_dependency("alchemy_cms", [">= 7.2.0", "< 9"]) + gem.add_dependency("solidus_api", [">= 4.0.0", "< 5"]) gem.add_dependency("solidus_core", [">= 4.0.0", "< 5"]) gem.add_dependency("solidus_backend", [">= 4.0.0", "< 5"]) gem.add_dependency("solidus_support", [">= 0.14.0", "< 1"]) gem.add_dependency("deface", ["~> 1.0"]) - gem.add_development_dependency("rspec-rails", ["~> 6.0"]) + gem.add_development_dependency("rspec-rails", ["~> 8.0"]) gem.add_development_dependency("shoulda-matchers", ["~> 4.0"]) gem.add_development_dependency("capybara", ["~> 3.0"]) gem.add_development_dependency("capybara-screenshot", ["~> 1.0"]) diff --git a/app/assets/config/alchemy_solidus/manifest.js b/app/assets/config/alchemy_solidus/manifest.js index 00cfa018..6d70eb23 100644 --- a/app/assets/config/alchemy_solidus/manifest.js +++ b/app/assets/config/alchemy_solidus/manifest.js @@ -1 +1,2 @@ //= link_tree ../../../javascript .js +//= link spree.js diff --git a/app/assets/javascripts/alchemy/solidus/admin.js b/app/assets/javascripts/alchemy/solidus/admin.js deleted file mode 100644 index 52e9ebc1..00000000 --- a/app/assets/javascripts/alchemy/solidus/admin.js +++ /dev/null @@ -1 +0,0 @@ -//= require spree diff --git a/app/javascript/alchemy_solidus.js b/app/javascript/alchemy_solidus.js index a4a46100..ad35541b 100644 --- a/app/javascript/alchemy_solidus.js +++ b/app/javascript/alchemy_solidus.js @@ -1,3 +1,4 @@ +import "spree" import "alchemy_solidus/components/product_select" import "alchemy_solidus/components/taxon_select" import "alchemy_solidus/components/variant_select" diff --git a/config/importmap.rb b/config/importmap.rb index f70e9a73..000e22e0 100644 --- a/config/importmap.rb +++ b/config/importmap.rb @@ -1,3 +1,4 @@ Alchemy.importmap.pin "alchemy_solidus", to: "alchemy_solidus.js", preload: true Alchemy.importmap.pin_all_from Alchemy::Solidus::Engine.root.join("app/javascript/alchemy_solidus"), under: "alchemy_solidus", preload: true +Alchemy.importmap.pin "spree", to: "spree.js", preload: true diff --git a/config/initializers/alchemy.rb b/config/initializers/alchemy.rb index 1619fab9..1f5cbded 100644 --- a/config/initializers/alchemy.rb +++ b/config/initializers/alchemy.rb @@ -47,5 +47,5 @@ Rails.application.config.after_initialize do Alchemy::Modules.register_module(alchemy_module) - Alchemy.link_dialog_tabs.add(Alchemy::Admin::LinkDialog::ProductTab) + Alchemy.config.link_dialog_tabs.add("Alchemy::Admin::LinkDialog::ProductTab") end diff --git a/lib/alchemy/solidus/engine.rb b/lib/alchemy/solidus/engine.rb index 075f2186..76c2812d 100644 --- a/lib/alchemy/solidus/engine.rb +++ b/lib/alchemy/solidus/engine.rb @@ -1,5 +1,6 @@ require "alchemy_cms" require "alchemy/version" +require "solidus_api" require "solidus_core" require "solidus_backend" require "solidus_support" @@ -14,10 +15,11 @@ module Alchemy module Solidus class Engine < ::Rails::Engine include SolidusSupport::EngineExtensions + engine_name "alchemy_solidus" initializer "alchemy_solidus.assets", before: "alchemy.importmap" do |app| - Alchemy.admin_importmaps.add({ + Alchemy.config.admin_importmaps.add({ importmap_path: root.join("config/importmap.rb"), source_paths: [ root.join("app/javascript") diff --git a/lib/generators/alchemy/solidus/install/install_generator.rb b/lib/generators/alchemy/solidus/install/install_generator.rb index 946e1598..a3734e4b 100644 --- a/lib/generators/alchemy/solidus/install/install_generator.rb +++ b/lib/generators/alchemy/solidus/install/install_generator.rb @@ -149,11 +149,6 @@ def set_root_route end end - def append_assets - append_file "vendor/assets/javascripts/alchemy/admin/all.js", - "//= require alchemy/solidus/admin.js" - end - private def alchemy_devise_present? diff --git a/spec/features/alchemy/link_overlay_spec.rb b/spec/features/alchemy/link_overlay_spec.rb index 6378bdbb..3faabd17 100644 --- a/spec/features/alchemy/link_overlay_spec.rb +++ b/spec/features/alchemy/link_overlay_spec.rb @@ -26,12 +26,12 @@ authorize_user admin_user allow(element).to receive(:definition) do - { + Alchemy::ElementDefinition.new( name: "article", ingredients: [ {role: "headline", type: "Text", settings: {linkable: true}} ] - } + ) end element.save! diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index caa96607..ffb559b9 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -75,8 +75,6 @@ Capybara.server = :puma, {Silent: true} RSpec.configure do |config| - # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures - config.fixture_path = "#{::Rails.root}/spec/fixtures" config.include Alchemy::TestSupport::IntegrationHelpers, type: :feature config.include Alchemy::TestSupport::CapybaraHelpers, type: :feature config.include ActiveSupport::Testing::TimeHelpers, type: :model diff --git a/spec/views/alchemy/ingredients/spree_product_editor_spec.rb b/spec/views/alchemy/ingredients/spree_product_editor_spec.rb index 39c6ce11..79adcfc4 100644 --- a/spec/views/alchemy/ingredients/spree_product_editor_spec.rb +++ b/spec/views/alchemy/ingredients/spree_product_editor_spec.rb @@ -9,7 +9,7 @@ before do allow(element).to receive(:definition) do - { + Alchemy::ElementDefinition.new( name: "all_you_can_eat", ingredients: [ {role: "product", @@ -19,7 +19,7 @@ {role: "taxon", type: "SpreeTaxon"} ] - } + ) end allow(element_editor).to receive(:ingredients) { [Alchemy::IngredientEditor.new(ingredient)] } diff --git a/spec/views/alchemy/ingredients/spree_taxon_editor_spec.rb b/spec/views/alchemy/ingredients/spree_taxon_editor_spec.rb index bfdaa0b2..5703a5f5 100644 --- a/spec/views/alchemy/ingredients/spree_taxon_editor_spec.rb +++ b/spec/views/alchemy/ingredients/spree_taxon_editor_spec.rb @@ -9,7 +9,7 @@ before do allow(element).to receive(:definition) do - { + Alchemy::ElementDefinition.new( name: "all_you_can_eat", ingredients: [ {role: "product", @@ -19,7 +19,7 @@ {role: "taxon", type: "SpreeTaxon"} ] - } + ) end allow(element_editor).to receive(:ingredients) { [Alchemy::IngredientEditor.new(ingredient)] } diff --git a/spec/views/alchemy/ingredients/spree_variant_editor_spec.rb b/spec/views/alchemy/ingredients/spree_variant_editor_spec.rb index 58765977..04d4960c 100644 --- a/spec/views/alchemy/ingredients/spree_variant_editor_spec.rb +++ b/spec/views/alchemy/ingredients/spree_variant_editor_spec.rb @@ -9,7 +9,7 @@ before do allow(element).to receive(:definition) do - { + Alchemy::ElementDefinition.new( name: "all_you_can_eat", ingredients: [ {role: "product", @@ -19,7 +19,7 @@ {role: "taxon", type: "SpreeTaxon"} ] - } + ) end allow(element_editor).to receive(:ingredients) { [Alchemy::IngredientEditor.new(ingredient)] }