diff --git a/app/domain/die_mitte/mailing_lists/subscribers.rb b/app/domain/die_mitte/mailing_lists/subscribers.rb index 587f656..903fca4 100644 --- a/app/domain/die_mitte/mailing_lists/subscribers.rb +++ b/app/domain/die_mitte/mailing_lists/subscribers.rb @@ -12,6 +12,7 @@ def people def correspondence_language_condition return {} if @list.correspondence_language.blank? + return {} if @list.filter_chain.filters.any? { |filter| filter.attr == "language" } {correspondence_language: @list.correspondence_language} end diff --git a/spec/domain/mailing_list/subscribers_spec.rb b/spec/domain/mailing_list/subscribers_spec.rb index f3cb539..3eae882 100644 --- a/spec/domain/mailing_list/subscribers_spec.rb +++ b/spec/domain/mailing_list/subscribers_spec.rb @@ -26,6 +26,14 @@ expect(list.people).to have(2).items end + it "includes two people if set but with a more specific filter-chain" do + list.update(correspondence_language: :fr) + list.update(filter_chain: {language: {allowed_values: [:fr, :de]}}) + + expect(list.people).to have(2).items + end + + it "includes single perosn when set" do list.update(correspondence_language: :de) expect(list.people).to eq [other]