# frozen_string_literal: true RSpec.describe ThemeSerializer do describe "load theme settings" do it 'should add error message when settings format is invalid' do theme = Fabricate(:theme) Theme.any_instance.stubs(:settings).raises(ThemeSettingsParser::InvalidYaml, I18n.t("themes.settings_errors.invalid_yaml")) serialized = ThemeSerializer.new(theme).as_json[:theme] expect(serialized[:settings]).to be_nil expect(serialized[:errors].count).to eq(1) expect(serialized[:errors][0]).to eq(I18n.t("themes.settings_errors.invalid_yaml")) end it 'should add errors messages from theme fields' do error = "error when compiling theme field" theme = Fabricate(:theme) theme_field = Fabricate(:theme_field, error: error, theme: theme) serialized = ThemeSerializer.new(theme.reload).as_json[:theme] expect(serialized[:errors].count).to eq(1) expect(serialized[:errors][0]).to eq(error) end end end