Oops, filters default handling was not user scoped
This commit is contained in:
@@ -7,7 +7,7 @@ module Dunlop
|
|||||||
|
|
||||||
before_save do
|
before_save do
|
||||||
if changes['is_default'] == [false, true]
|
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
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -9,13 +9,17 @@ describe Dunlop::UserFilter do
|
|||||||
|
|
||||||
describe 'is_default' do
|
describe 'is_default' do
|
||||||
it "creates" do
|
it "creates" do
|
||||||
filter1 = create 'dunlop/user_filter', scope_key: 'dunlop:test1', filters: {a: 3, b: 8}, is_default: true
|
user1 = create :user
|
||||||
filter2 = create 'dunlop/user_filter', scope_key: 'dunlop:test2', filters: {a: 3, b: 8}, is_default: true
|
user2 = create :user
|
||||||
filter3 = create 'dunlop/user_filter', scope_key: 'dunlop:test1', filters: {a: 3, b: 8}, is_default: true
|
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
|
filter1.reload.is_default.should be false # there can be only one
|
||||||
filter2.reload.is_default.should be true # different scope key
|
filter2.reload.is_default.should be true # different scope key
|
||||||
filter3.reload.is_default.should be true # there can only be the last one
|
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
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user