discourse/spec/models/theme_modifier_set_spec.rb
David Taylor d1474e94a1
FEATURE: Allow themes to specify modifiers in their about.json file (#9097)
There are three modifiers:
- serialize_topic_excerpts (boolean)
- csp_extensions (array of strings)
- svg_icons (array of strings)

When multiple themes are active, the values will be combined. The combination method varies based on the setting. CSP/SVG arrays will be combined. serialize_topic_excerpts will use `Enumerable#any`.
2020-03-11 13:30:45 +00:00

25 lines
877 B
Ruby

# frozen_string_literal: true
require 'rails_helper'
describe ThemeModifierSet do
describe "#resolve_modifiers_for_themes" do
it "returns nil for unknown modifier" do
expect(ThemeModifierSet.resolve_modifier_for_themes([1, 2], :unknown_modifier)).to eq(nil)
end
it "resolves serialize_topic_excerpts correctly" do
t1 = Fabricate(:theme)
t1.theme_modifier_set.update!(serialize_topic_excerpts: true)
t2 = Fabricate(:theme)
t2.theme_modifier_set.update!(serialize_topic_excerpts: false)
expect(ThemeModifierSet.resolve_modifier_for_themes([t1.id, t2.id], :serialize_topic_excerpts)).to eq(true)
t1 = Fabricate(:theme)
t1.theme_modifier_set.update!(serialize_topic_excerpts: nil)
expect(ThemeModifierSet.resolve_modifier_for_themes([t1.id, t2.id], :serialize_topic_excerpts)).to eq(false)
end
end
end