From 23f687ba3623995dc32199d8de88dc1fd2410eca Mon Sep 17 00:00:00 2001 From: Thomas von Deyen Date: Fri, 6 Oct 2023 10:32:27 +0200 Subject: [PATCH] Allow Rails 7.1 The page spec needed to be updated because of a change to foreign key detection in Rails 7.1. But this change in the spec is actually good. See https://github.com/rails/rails/pull/48971 --- .github/workflows/test.yml | 1 + Gemfile | 7 +------ alchemy_cms.gemspec | 4 ++-- spec/dummy/db/schema.rb | 2 +- spec/models/alchemy/page_spec.rb | 18 +++++++++--------- 5 files changed, 14 insertions(+), 18 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0307ef368f..ad6e23647f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,6 +10,7 @@ jobs: matrix: rails: - "7.0" + - "7.1" ruby: - "3.0" - "3.1" diff --git a/Gemfile b/Gemfile index cf43a09d27..f5ff6d81d5 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source "https://rubygems.org" gemspec -rails_version = ENV.fetch("RAILS_VERSION", 7.0).to_f +rails_version = ENV.fetch("RAILS_VERSION", "7.1") gem "rails", "~> #{rails_version}.0" if ENV["DB"].nil? || ENV["DB"] == "sqlite" @@ -48,11 +48,6 @@ end # Necessary until https://github.com/mikel/mail/pull/1439 # got merged and released. if Gem.ruby_version >= Gem::Version.new("3.1.0") - if rails_version.to_s.match?(/6.1/) - # Rails 6.1 needs this as well - gem "net-pop", "~> 0.1.0", require: false - gem "net-imap", "~> 0.4.0", require: false - end gem "net-smtp", "~> 0.4.0", require: false end diff --git a/alchemy_cms.gemspec b/alchemy_cms.gemspec index 6d5a3eb8d3..1690e9b3a9 100644 --- a/alchemy_cms.gemspec +++ b/alchemy_cms.gemspec @@ -29,10 +29,10 @@ Gem::Specification.new do |gem| activesupport railties ].each do |rails_gem| - gem.add_runtime_dependency rails_gem, [">= 7.0", "< 7.1"] + gem.add_runtime_dependency rails_gem, [">= 7.0", "< 7.2"] end - gem.add_runtime_dependency "active_model_serializers", ["~> 0.10.0"] + gem.add_runtime_dependency "active_model_serializers", ["~> 0.10.14"] gem.add_runtime_dependency "acts_as_list", [">= 0.3", "< 2"] gem.add_runtime_dependency "awesome_nested_set", ["~> 3.1"] gem.add_runtime_dependency "cancancan", [">= 2.1", "< 4.0"] diff --git a/spec/dummy/db/schema.rb b/spec/dummy/db/schema.rb index e2d4aebe81..0c591f5a06 100644 --- a/spec/dummy/db/schema.rb +++ b/spec/dummy/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2023_05_05_132743) do +ActiveRecord::Schema[7.1].define(version: 2023_05_05_132743) do create_table "alchemy_attachments", force: :cascade do |t| t.string "name" t.string "file_name" diff --git a/spec/models/alchemy/page_spec.rb b/spec/models/alchemy/page_spec.rb index d6b3b60a1d..cb36a3c6f0 100644 --- a/spec/models/alchemy/page_spec.rb +++ b/spec/models/alchemy/page_spec.rb @@ -1476,36 +1476,36 @@ module Alchemy end describe "#set_language" do - let(:default_language) { mock_model("Language", code: "es") } - let(:page) { Page.new } - - before { allow(page).to receive(:parent).and_return(parent) } + let(:default_language) { build(:alchemy_language, code: "es") } + let(:page) { build(:alchemy_page, parent: parent) } subject { page } context "parent has a language" do - let(:parent) { mock_model("Page", language: default_language, language_id: default_language.id, language_code: default_language.code) } + let(:parent) { create(:alchemy_page, language: default_language, language_id: default_language.id, language_code: default_language.code) } before do page.send(:set_language) end describe "#language_id" do - subject { super().language_id } + subject { page.language_id } + it { is_expected.to eq(parent.language_id) } end end context "parent has no language" do - let(:parent) { mock_model("Page", language: nil, language_id: nil, language_code: nil) } + let(:parent) { build(:alchemy_page, language: nil, language_id: nil, language_code: nil) } before do - allow(Language).to receive(:default).and_return(default_language) + expect(Language).to receive(:current).twice { default_language } page.send(:set_language) end describe "#language_id" do - subject { super().language_id } + subject { page.language_id } + it { is_expected.to eq(default_language.id) } end end