36 lines
1 KiB
Ruby
36 lines
1 KiB
Ruby
|
# 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
|