From a5eb80eff2d673bf3347389c4b2ad1b2f381dbaf Mon Sep 17 00:00:00 2001 From: Constantine Nathanson <35217733+const-cloudinary@users.noreply.github.com> Date: Mon, 19 Aug 2024 00:05:05 +0300 Subject: [PATCH] Fix ActiveStorage type detection for email files Fixes #555 --- lib/active_storage/service/cloudinary_service.rb | 2 +- spec/account_api_spec.rb | 2 +- spec/active_storage/database/setup.rb | 11 +++++++++-- .../active_storage/service/cloudinary_service_spec.rb | 2 +- spec/spec_helper.rb | 1 + 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/active_storage/service/cloudinary_service.rb b/lib/active_storage/service/cloudinary_service.rb index 87103dd3..43f2d3ca 100644 --- a/lib/active_storage/service/cloudinary_service.rb +++ b/lib/active_storage/service/cloudinary_service.rb @@ -255,7 +255,7 @@ def content_type_to_resource_type(content_type) case type when 'video', 'audio' 'video' - when 'text' + when 'text', 'message' 'raw' when 'application' case subtype diff --git a/spec/account_api_spec.rb b/spec/account_api_spec.rb index d9ca5347..9dffacee 100644 --- a/spec/account_api_spec.rb +++ b/spec/account_api_spec.rb @@ -238,7 +238,7 @@ expect(key_del_res["message"]).to eq "ok" named_key_del_res = @api.delete_access_key(cloud_id, nil, named_key_name) - expect(named_key_del_res["message"]).to eq "sok" + expect(named_key_del_res["message"]).to eq "ok" end end end diff --git a/spec/active_storage/database/setup.rb b/spec/active_storage/database/setup.rb index ed38e6dc..cf34a998 100644 --- a/spec/active_storage/database/setup.rb +++ b/spec/active_storage/database/setup.rb @@ -7,6 +7,13 @@ class << self alias_method :load, :unsafe_load if YAML.respond_to? :unsafe_load end end -ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:") -ActiveRecord::Base.connection.migration_context.migrate + +connection = ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:") +if connection.respond_to?(:migration_context) + connection.migration_context.migrate +else + # Fallback for older versions of Rails + ActiveRecord::Base.connection.migration_context.migrate +end + ActiveStorageCreateUsers.migrate(:up) diff --git a/spec/active_storage/service/cloudinary_service_spec.rb b/spec/active_storage/service/cloudinary_service_spec.rb index f4fe235d..2ab31b4b 100644 --- a/spec/active_storage/service/cloudinary_service_spec.rb +++ b/spec/active_storage/service/cloudinary_service_spec.rb @@ -108,7 +108,7 @@ it "should set raw resource_type for raw formats" do key = SecureRandom.base58(24) - types = %w[text/* application/*] + types = %w[text/* application/* message/*] types.each do |content_type| url = @service.url_for_direct_upload(key, content_type: content_type) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index b912392d..5eed8387 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,5 +1,6 @@ SUFFIX = ENV['TRAVIS_JOB_ID'] || rand(999999999).to_s +require 'bundler/setup' require 'rspec' require 'rspec/retry' require 'rexml/parsers/ultralightparser'