44 lines
1.1 KiB
Ruby
44 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe REST::CustomEmojiSerializer do
|
|
subject { serialized_record_json(record, described_class) }
|
|
|
|
let(:record) { Fabricate.build :custom_emoji, id: 123, category: Fabricate(:custom_emoji_category, name: 'Category Name'), aliases: aliases }
|
|
let(:aliases) { [] }
|
|
|
|
describe 'serialization' do
|
|
it 'returns expected values' do
|
|
expect(subject)
|
|
.to include(
|
|
'category' => be_a(String).and(eq('Category Name')),
|
|
'aliases' => be_a(Array).and(eq([]))
|
|
)
|
|
end
|
|
end
|
|
|
|
context 'when null aliases' do
|
|
let(:aliases) { nil }
|
|
|
|
it 'returns normalized aliases' do
|
|
expect(subject['aliases']).to eq []
|
|
end
|
|
end
|
|
|
|
context 'when aliases contains null' do
|
|
let(:aliases) { [nil] }
|
|
|
|
it 'returns normalized aliases' do
|
|
expect(subject['aliases']).to eq []
|
|
end
|
|
end
|
|
|
|
context 'when aliases contains normal text' do
|
|
let(:aliases) { ['neko'] }
|
|
|
|
it 'returns normalized aliases' do
|
|
expect(subject['aliases']).to eq ['neko']
|
|
end
|
|
end
|
|
end
|