chore: Add validation to prevent message flooding (#9254)
- Add a validation to limit messages created per minute to avoid message flooding cases.
This commit is contained in:
@@ -11,7 +11,7 @@ RSpec.describe Message do
|
||||
end
|
||||
|
||||
describe 'length validations' do
|
||||
let(:message) { create(:message) }
|
||||
let!(:message) { create(:message) }
|
||||
|
||||
context 'when it validates name length' do
|
||||
it 'valid when within limit' do
|
||||
@@ -27,6 +27,17 @@ RSpec.describe Message do
|
||||
expect(message.errors[:processed_message_content]).to include('is too long (maximum is 150000 characters)')
|
||||
expect(message.errors[:content]).to include('is too long (maximum is 150000 characters)')
|
||||
end
|
||||
|
||||
it 'adds error in case of message flooding' do
|
||||
with_modified_env 'CONVERSATION_MESSAGE_PER_MINUTE_LIMIT': '2' do
|
||||
conversation = message.conversation
|
||||
create(:message, conversation: conversation)
|
||||
conv_new_message = build(:message, conversation: message.conversation)
|
||||
|
||||
expect(conv_new_message.valid?).to be false
|
||||
expect(conv_new_message.errors[:base]).to eq(['Too many messages'])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user