From 97cd03d41a39d16c9013dccef1790b47a91cdf9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guitaut?= Date: Tue, 6 Aug 2024 14:34:37 +0200 Subject: [PATCH] FIX: Return additional message types properly Following a recent refactor, some methods from `FlagSettings` have been renamed (`custom_types` -> `additional_message_types`). The `PostActionType` model was using `custom_types` but when the renaming was done, it was renamed to `with_additional_message` instead of `additional_message_types`, which under the right circumstances will raise an error. --- app/models/post_action_type.rb | 2 +- spec/models/post_action_type_spec.rb | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/app/models/post_action_type.rb b/app/models/post_action_type.rb index 6cf93f946af..6d44b486d64 100644 --- a/app/models/post_action_type.rb +++ b/app/models/post_action_type.rb @@ -110,7 +110,7 @@ class PostActionType < ActiveRecord::Base end def additional_message_types - return flag_settings.with_additional_message if overridden_by_plugin_or_skipped_db? + return flag_settings.additional_message_types if overridden_by_plugin_or_skipped_db? flag_enum(all_flags.select(&:require_message)) end diff --git a/spec/models/post_action_type_spec.rb b/spec/models/post_action_type_spec.rb index 201a83ff503..77bf6d7947d 100644 --- a/spec/models/post_action_type_spec.rb +++ b/spec/models/post_action_type_spec.rb @@ -28,4 +28,30 @@ RSpec.describe PostActionType do end end end + + describe ".additional_message_types" do + before { described_class.stubs(:overridden_by_plugin_or_skipped_db?).returns(overriden) } + + context "when overridden by plugin or skipped DB" do + let(:overriden) { true } + + it "returns additional types from flag settings" do + expect(described_class.additional_message_types).to eq( + described_class.flag_settings.additional_message_types, + ) + end + end + + context "when not overriden by plugin or skipped DB" do + let(:overriden) { false } + + it "returns all flags" do + expect(described_class.additional_message_types).to eq( + illegal: 10, + notify_moderators: 7, + notify_user: 6, + ) + end + end + end end