diff --git a/packages/twenty-shared/src/utils/filter/utils/__tests__/isMatchingMultiSelectFilter.test.ts b/packages/twenty-shared/src/utils/filter/utils/__tests__/isMatchingMultiSelectFilter.test.ts index 4c72a4e169..b768f60589 100644 --- a/packages/twenty-shared/src/utils/filter/utils/__tests__/isMatchingMultiSelectFilter.test.ts +++ b/packages/twenty-shared/src/utils/filter/utils/__tests__/isMatchingMultiSelectFilter.test.ts @@ -2,7 +2,7 @@ import { isMatchingMultiSelectFilter } from '@/utils/filter/utils/isMatchingMult describe('isMatchingMultiSelectFilter', () => { describe('containsAny', () => { - it('should return true when value contains all filter items', () => { + it('should return true when value contains every filter item', () => { expect( isMatchingMultiSelectFilter({ multiSelectFilter: { containsAny: ['A', 'B'] }, @@ -11,12 +11,39 @@ describe('isMatchingMultiSelectFilter', () => { ).toBe(true); }); - it('should return false when value does not contain all filter items', () => { + it('should return true when value contains only some of the filter items', () => { expect( isMatchingMultiSelectFilter({ multiSelectFilter: { containsAny: ['A', 'D'] }, value: ['A', 'B', 'C'], }), + ).toBe(true); + }); + + it('should return true when value shares a single option with the filter', () => { + expect( + isMatchingMultiSelectFilter({ + multiSelectFilter: { containsAny: ['B'] }, + value: ['A', 'B', 'C'], + }), + ).toBe(true); + }); + + it('should return false when value shares no option with the filter', () => { + expect( + isMatchingMultiSelectFilter({ + multiSelectFilter: { containsAny: ['X', 'Y'] }, + value: ['A', 'B', 'C'], + }), + ).toBe(false); + }); + + it('should return false for an empty value array', () => { + expect( + isMatchingMultiSelectFilter({ + multiSelectFilter: { containsAny: ['A'] }, + value: [], + }), ).toBe(false); }); diff --git a/packages/twenty-shared/src/utils/filter/utils/isMatchingMultiSelectFilter.ts b/packages/twenty-shared/src/utils/filter/utils/isMatchingMultiSelectFilter.ts index 4595f7b36e..7ff7628e96 100644 --- a/packages/twenty-shared/src/utils/filter/utils/isMatchingMultiSelectFilter.ts +++ b/packages/twenty-shared/src/utils/filter/utils/isMatchingMultiSelectFilter.ts @@ -11,7 +11,7 @@ export const isMatchingMultiSelectFilter = ({ case multiSelectFilter.containsAny !== undefined: { return ( Array.isArray(value) && - multiSelectFilter.containsAny.every((item) => value.includes(item)) + multiSelectFilter.containsAny.some((item) => value.includes(item)) ); } case multiSelectFilter.isEmptyArray !== undefined: {