diff --git a/lib/split/user.rb b/lib/split/user.rb index 02a26653..7d506a87 100644 --- a/lib/split/user.rb +++ b/lib/split/user.rb @@ -4,8 +4,8 @@ class User def_delegators :@user, :keys, :[], :[]=, :delete attr_reader :user - def initialize(context) - @user = Split::Persistence.adapter.new(context) + def initialize(context, adapter=nil) + @user = adapter || Split::Persistence.adapter.new(context) end def cleanup_old_experiments! diff --git a/spec/user_spec.rb b/spec/user_spec.rb index b76674df..3a11bc27 100644 --- a/spec/user_spec.rb +++ b/spec/user_spec.rb @@ -60,4 +60,17 @@ end end end + + context "instantiated with custom adapter" do + let(:custom_adapter) { double(:persistence_adapter) } + + before do + @subject = described_class.new(context, custom_adapter) + end + + it "sets user to the custom adapter" do + expect(@subject.user).to eq(custom_adapter) + end + end + end