diff --git a/app/models/theme_field.rb b/app/models/theme_field.rb index 4e525b0c1db..dcf61cc24b1 100644 --- a/app/models/theme_field.rb +++ b/app/models/theme_field.rb @@ -483,7 +483,7 @@ class ThemeField < ActiveRecord::Base end before_save do - if will_save_change_to_value? && !will_save_change_to_value_baked? + if (will_save_change_to_value? || will_save_change_to_upload_id?) && !will_save_change_to_value_baked? self.value_baked = nil end end diff --git a/spec/models/theme_field_spec.rb b/spec/models/theme_field_spec.rb index 7ba362a79eb..2d20d1473cb 100644 --- a/spec/models/theme_field_spec.rb +++ b/spec/models/theme_field_spec.rb @@ -419,4 +419,15 @@ HTML end end + context "SVG sprite theme fields" do + let(:upload) { Fabricate(:upload) } + let(:theme) { Fabricate(:theme) } + let(:theme_field) { ThemeField.create!(theme: theme, target_id: 0, name: SvgSprite.theme_sprite_variable_name, upload: upload, value: "", value_baked: "baked", type_id: ThemeField.types[:theme_upload_var]) } + + it "is rebaked when upload changes" do + theme_field.update(upload: Fabricate(:upload)) + expect(theme_field.value_baked).to eq(nil) + end + end + end