Sha256: 805c9a419979e3386bd4e17fa5eb4022e60615a4bddee77c31deca99168e21f6

Contents?: true

Size: 1.06 KB

Versions: 32

Compression:

Stored size: 1.06 KB

Contents

require 'spec_helper'

describe Spree::Preferences::Store, type: :model do
  before :each do
    @store = Spree::Preferences::StoreInstance.new
  end

  it "sets and gets a key" do
    @store.set :test, 1
    expect(@store.exist?(:test)).to be true
    expect(@store.get(:test)).to eq 1
  end

  it "can set and get false values when cache return nil" do
    @store.set :test, false
    expect(@store.get(:test)).to be false
  end

  it "will return db value when cache is emtpy and cache the db value" do
    preference = Spree::Preference.where(key: 'test').first_or_initialize
    preference.value = '123'
    preference.save

    Rails.cache.clear
    expect(@store.get(:test)).to eq '123'
    expect(Rails.cache.read(:test)).to eq '123'
  end

  it "should return and cache fallback value when supplied" do
    Rails.cache.clear
    expect(@store.get(:test){ false }).to be false
    expect(Rails.cache.read(:test)).to be false
  end

  it "should return nil when key can't be found and fallback value is not supplied" do
    expect(@store.get(:random_key){ nil }).to be_nil
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
solidus_core-2.3.1 spec/models/spree/preferences/store_spec.rb
solidus_core-2.2.2 spec/models/spree/preferences/store_spec.rb
solidus_core-2.1.1 spec/models/spree/preferences/store_spec.rb
solidus_core-2.0.3 spec/models/spree/preferences/store_spec.rb
solidus_core-1.4.2 spec/models/spree/preferences/store_spec.rb
solidus_core-1.3.2 spec/models/spree/preferences/store_spec.rb
solidus_core-2.3.0 spec/models/spree/preferences/store_spec.rb
solidus_core-2.3.0.rc3 spec/models/spree/preferences/store_spec.rb
solidus_core-2.3.0.rc2 spec/models/spree/preferences/store_spec.rb
solidus_core-2.3.0.rc1 spec/models/spree/preferences/store_spec.rb
solidus_core-2.3.0.beta1 spec/models/spree/preferences/store_spec.rb
solidus_core-2.0.2 spec/models/spree/preferences/store_spec.rb
solidus_core-1.4.1 spec/models/spree/preferences/store_spec.rb
solidus_core-2.2.1 spec/models/spree/preferences/store_spec.rb
solidus_core-2.2.0 spec/models/spree/preferences/store_spec.rb
solidus_core-2.2.0.rc1 spec/models/spree/preferences/store_spec.rb
solidus_core-2.2.0.beta1 spec/models/spree/preferences/store_spec.rb
solidus_core-2.1.0 spec/models/spree/preferences/store_spec.rb
solidus_core-2.1.0.rc1 spec/models/spree/preferences/store_spec.rb
solidus_core-2.0.1 spec/models/spree/preferences/store_spec.rb