@@ -52,13 +52,43 @@ def translation_key(enum_option_to_translate)
5252 end
5353
5454 describe '#translate_enum_option' do
55- let ( :enum_option_to_translate ) { 'value1' }
55+ context 'with enum option name present in enum' do
56+ let ( :enum_option_to_translate ) { 'value1' }
5657
57- it 'returns correct translation' do
58- translation = described_class . translate_enum_option (
59- model_class , 'some_enum' , enum_option_to_translate
60- )
61- expect ( translation ) . to eq ( enum_translations [ enum_option_to_translate . to_sym ] )
58+ it 'returns correct translation' do
59+ translation = described_class . translate_enum_option (
60+ model_class , 'some_enum' , enum_option_to_translate
61+ )
62+ expect ( translation ) . to eq ( enum_translations [ enum_option_to_translate . to_sym ] )
63+ end
64+ end
65+
66+ context 'with enum option name not present in enum' do
67+ let ( :enum_option_to_translate ) { 'unknown_value' }
68+
69+ before do
70+ allow ( I18n ) . to receive ( :t ) . with (
71+ translation_key ( enum_option_to_translate ) , default : enum_option_to_translate . to_s
72+ ) . and_return ( enum_option_to_translate )
73+ end
74+
75+ it 'returns untranslated enum option name' do
76+ translation = described_class . translate_enum_option (
77+ model_class , 'some_enum' , enum_option_to_translate
78+ )
79+ expect ( translation ) . to eq ( enum_option_to_translate )
80+ end
81+ end
82+
83+ context 'with blank enum option name' do
84+ let ( :enum_option_to_translate ) { nil }
85+
86+ it 'returns nil' do
87+ translation = described_class . translate_enum_option (
88+ model_class , 'some_enum' , enum_option_to_translate
89+ )
90+ expect ( translation ) . to eq ( nil )
91+ end
6292 end
6393 end
6494end
0 commit comments