Sha256: 7e1f5bb27191629350ff539853a17fa3c434c52fb17d34a3c30b1074e9655241

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 KB

Contents

require "spec_helper"

describe Redis::Settings::ActiveRecord do
  let!(:user) { User.create! }
  let!(:admin) { Admin::User.create! }
  let!(:root) { Redis::Settings.root_namespace }

  it "injects settings method" do
    User.new.should respond_to(:settings)
  end

  it "raises when trying to access settings from a new record" do
    expect {
      User.new.settings
    }.to raise_error(Redis::Settings::NewRecordError)
  end

  it "doesn't raise exception if new record was destroyed" do
    expect {
      User.new { |u| u.id = 7 }.destroy
    }.to_not raise_error(Redis::Settings::NewRecordError)
  end

  it "sets namespace accordingly" do
    user.settings.namespace.should == "#{root}/user/#{user.id}"
    admin.settings.namespace.should == "#{root}/admin/user/#{admin.id}"
  end

  it "defines setting" do
    admin.settings[:role] = "admin"
    user.settings[:role] = "support"

    user.settings[:role].should == "support"
    admin.settings[:role].should == "admin"
  end

  it "removes all settings when destroy a record" do
    user.settings[:role] = "customer"
    user.destroy
    settings = Redis::Settings.connection.hgetall("#{root}/user/#{user.id}")
    expect(settings).to be_empty
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
redis-settings-0.2.3 spec/redis/settings/active_record_spec.rb