Oops, filters default handling was not user scoped

This commit is contained in:
2018-11-20 20:11:21 -03:00
parent acb4730a89
commit ad1c23a250
2 changed files with 8 additions and 4 deletions
+1 -1
View File
@@ -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
+7 -3
View File
@@ -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