require 'rails_helper' describe Setting do before do described_class["official_level_1_name"] = 'Stormtrooper' end it "returns the overriden setting" do expect(described_class['official_level_1_name']).to eq('Stormtrooper') end it "shoulds return nil" do expect(described_class['undefined_key']).to eq(nil) end it "persists a setting on the db" do expect(described_class.where(key: 'official_level_1_name', value: 'Stormtrooper')).to exist end describe "#feature_flag?" do it "is true if key starts with 'feature.'" do setting = described_class.create(key: 'feature.whatever') expect(setting.feature_flag?).to eq true end it "is false if key does not start with 'feature.'" do setting = described_class.create(key: 'whatever') expect(setting.feature_flag?).to eq false end end describe "#enabled?" do it "is true if feature_flag and value present" do setting = described_class.create(key: 'feature.whatever', value: 1) expect(setting.enabled?).to eq true setting.value = "true" expect(setting.enabled?).to eq true setting.value = "whatever" expect(setting.enabled?).to eq true end it "is false if feature_flag and value blank" do setting = described_class.create(key: 'feature.whatever') expect(setting.enabled?).to eq false setting.value = "" expect(setting.enabled?).to eq false end it "is false if not feature_flag" do setting = described_class.create(key: 'whatever', value: "whatever") expect(setting.enabled?).to eq false end end describe "#banner_style?" do it "is true if key starts with 'banner-style.'" do setting = described_class.create(key: 'banner-style.whatever') expect(setting.banner_style?).to eq true end it "is false if key does not start with 'banner-style.'" do setting = described_class.create(key: 'whatever') expect(setting.banner_style?).to eq false end end describe "#banner_img?" do it "is true if key starts with 'banner-img.'" do setting = described_class.create(key: 'banner-img.whatever') expect(setting.banner_img?).to eq true end it "is false if key does not start with 'banner-img.'" do setting = described_class.create(key: 'whatever') expect(setting.banner_img?).to eq false end end end