diff --git a/app/models/dunlop/user_filter.rb b/app/models/dunlop/user_filter.rb index 70f8643..466f901 100644 --- a/app/models/dunlop/user_filter.rb +++ b/app/models/dunlop/user_filter.rb @@ -7,7 +7,7 @@ module Dunlop before_save do if changes['is_default'] == [false, true] - self.class.where(scope_key: scope_key).update_all(is_default: false) + self.class.where(user_id: user_id, scope_key: scope_key).update_all(is_default: false) end end end diff --git a/spec/models/dunlop/user_filter_spec.rb b/spec/models/dunlop/user_filter_spec.rb index 5165277..3380c26 100644 --- a/spec/models/dunlop/user_filter_spec.rb +++ b/spec/models/dunlop/user_filter_spec.rb @@ -9,13 +9,17 @@ describe Dunlop::UserFilter do describe 'is_default' do it "creates" do - filter1 = create 'dunlop/user_filter', scope_key: 'dunlop:test1', filters: {a: 3, b: 8}, is_default: true - filter2 = create 'dunlop/user_filter', scope_key: 'dunlop:test2', filters: {a: 3, b: 8}, is_default: true - filter3 = create 'dunlop/user_filter', scope_key: 'dunlop:test1', filters: {a: 3, b: 8}, is_default: true + user1 = create :user + user2 = create :user + filter1 = create 'dunlop/user_filter', user: user1, scope_key: 'dunlop:test1', filters: {a: 3, b: 8}, is_default: true + filter2 = create 'dunlop/user_filter', user: user1, scope_key: 'dunlop:test2', filters: {a: 3, b: 8}, is_default: true + filter3 = create 'dunlop/user_filter', user: user1, scope_key: 'dunlop:test1', filters: {a: 3, b: 8}, is_default: true + filter4 = create 'dunlop/user_filter', user: user2, scope_key: 'dunlop:test1', filters: {a: 3, b: 8}, is_default: true filter1.reload.is_default.should be false # there can be only one filter2.reload.is_default.should be true # different scope key filter3.reload.is_default.should be true # there can only be the last one + filter4.reload.is_default.should be true # different user end end