From b7bcb08bd3ddeb4730255c80b9f89d8f22b65a22 Mon Sep 17 00:00:00 2001 From: Tony Guntharp Date: Wed, 18 Mar 2026 12:43:51 -0500 Subject: [PATCH] fix: resolve all CI failures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Unit test: handle both kaminari and will_paginate (try/rescue) - App template: remove auto-generated scaffold request specs - App template: add Psych permitted_classes initializer for ActiveSupport::TimeWithZone (fixes reify on Ruby 3.1+) All 19 specs pass on Rails 7.0/7.1 × kaminari/will_paginate. Refs #59 --- spec/app_template.rb | 13 +++++++++++++ spec/unit/authorization_spec.rb | 6 +++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/spec/app_template.rb b/spec/app_template.rb index fd358a0..5fc93eb 100644 --- a/spec/app_template.rb +++ b/spec/app_template.rb @@ -2,6 +2,10 @@ gem 'paper_trail_manager', path: __FILE__ + '/../../../' +# Remove auto-generated request specs from dummy app +remove_file 'spec/requests/entities_spec.rb' if File.exist?('spec/requests/entities_spec.rb') +remove_file 'spec/requests/platforms_spec.rb' if File.exist?('spec/requests/platforms_spec.rb') + generate 'paper_trail:install' generate 'resource', 'entity name:string status:string --no-controller-specs --no-helper-specs' generate 'resource', 'platform name:string status:string --no-controller-specs --no-helper-specs' @@ -22,4 +26,13 @@ route "resources :changes, controller: 'paper_trail_manager/changes'" +# Allow YAML deserialization of ActiveSupport::TimeWithZone (Ruby 3.1+ Psych 4) +initializer 'permitted_classes.rb', <<~RUBY + Rails.application.config.active_record.yaml_column_permitted_classes = [ + ActiveSupport::TimeWithZone, + ActiveSupport::TimeZone, + Time + ] +RUBY + rake 'db:migrate db:test:prepare' diff --git a/spec/unit/authorization_spec.rb b/spec/unit/authorization_spec.rb index 9f3040f..08fbcd8 100644 --- a/spec/unit/authorization_spec.rb +++ b/spec/unit/authorization_spec.rb @@ -1,4 +1,8 @@ -require 'kaminari/core' +begin + require 'kaminari/core' +rescue LoadError + require 'will_paginate' +end require 'paper_trail_manager' RSpec.describe PaperTrailManager, 'authorization' do