From ad1c23a2506d913b40f7990822391f72fb894d38 Mon Sep 17 00:00:00 2001 From: Benjamin ter Kuile Date: Tue, 20 Nov 2018 20:11:21 -0300 Subject: [PATCH] Oops, filters default handling was not user scoped --- app/models/dunlop/user_filter.rb | 2 +- spec/models/dunlop/user_filter_spec.rb | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) 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