diff options
Diffstat (limited to 'spec/models/notes/note_metadata_spec.rb')
-rw-r--r-- | spec/models/notes/note_metadata_spec.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/models/notes/note_metadata_spec.rb b/spec/models/notes/note_metadata_spec.rb new file mode 100644 index 00000000000..d1b35e0cdf9 --- /dev/null +++ b/spec/models/notes/note_metadata_spec.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Notes::NoteMetadata, feature_category: :team_planning do + describe 'associations' do + it { is_expected.to belong_to(:note) } + end + + describe 'callbacks' do + let_it_be(:note) { create(:note) } + let_it_be(:email) { "#{'a' * 255}@example.com" } + + context 'with before_save :ensure_email_participant_length' do + let(:note_metadata) { create(:note_metadata, note: note, email_participant: email) } + + context 'when email length is > 255' do + let(:expected_email) { "#{'a' * 252}..." } + + it 'rewrites the email within max length' do + expect(note_metadata.email_participant.length).to eq(255) + expect(note.note_metadata.email_participant).to eq(expected_email) + end + end + + context 'when email is within permissible length' do + let(:email) { 'email@example.com' } + + it 'saves the email as-is' do + expect(note_metadata.email_participant).to eq(email) + end + end + end + end +end |