# 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