import { testDepartmentFilter } from "../src/Filter/filter-v2/department"; import { FilterOperator } from "../src/Filter/filter-v2"; describe(' department filter', () => { const department0 = {id: 0, name: 'test', hierarchyDisplay: ['test']}; const department1 = {id: 1, name: 'test1', hierarchyDisplay: ['test1']}; const department2 = {id: 2, name: 'test2', hierarchyDisplay: ['test2']}; const clone = (o: object) => { return JSON.parse(JSON.stringify(o)); } it('should is department value', () => { expect(testDepartmentFilter([clone(department0), clone(department1)], FilterOperator.Is, [clone(department1), clone(department0)])).toBe(true); }); it('should in department value', () => { expect(testDepartmentFilter([clone(department1), clone(department0)], FilterOperator.In, [clone(department1), clone(department2)])).toBe(true); expect(testDepartmentFilter([clone(department1), clone(department0)], FilterOperator.In, "123")).toBe(false); }); it('should include department value', () => { // 单元格值等于筛选值 expect(testDepartmentFilter([clone(department1), clone(department0)], FilterOperator.IncludeAll, [clone(department1), clone(department0)])).toBe(true); // 单元格值只有部分筛选值 expect(testDepartmentFilter([clone(department1)], FilterOperator.IncludeAll, [clone(department1), clone(department0)])).toBe(false); expect(testDepartmentFilter([clone(department1), clone(department2)], FilterOperator.IncludeAll, [clone(department1), clone(department0)])).toBe(false); // 单元格值包含全部筛选值 expect(testDepartmentFilter([clone(department1), clone(department0), clone(department2)], FilterOperator.IncludeAll, [clone(department1), clone(department0)])).toBe(true); }); it('should not in department value', () => { expect(testDepartmentFilter([clone(department1), clone(department0)], FilterOperator.NotIn, [clone(department1), clone(department2)])).toBe(false); expect(testDepartmentFilter([clone(department1), clone(department0)], FilterOperator.NotIn, "123")).toBe(true); }); it('should include all department value', () => { expect(testDepartmentFilter([clone(department1), clone(department0)], FilterOperator.IncludeAll, [clone(department0), clone(department1)])).toBe(true); expect(testDepartmentFilter([clone(department1), clone(department0)], FilterOperator.IncludeAll, [clone(department1), clone(department0)])).toBe(true); expect(testDepartmentFilter([clone(department1), clone(department0)], FilterOperator.IncludeAll, "123")).toBe(false); }); it('should empty department value', () => { expect(testDepartmentFilter(null, FilterOperator.IsEmpty, [clone(department1), clone(department0)])).toBe(true); expect(testDepartmentFilter(null, FilterOperator.IsEmpty, null)).toBe(true); expect(testDepartmentFilter([clone(department1), clone(department0)], FilterOperator.IsEmpty, [])).toBe(false); expect(testDepartmentFilter([clone(department1), clone(department0)], FilterOperator.IsEmpty, null)).toBe(false); }); it('should not empty department value', () => { expect(testDepartmentFilter([clone(department1), clone(department0)], FilterOperator.IsNotEmpty, [clone(department1), clone(department0)])).toBe(true); expect(testDepartmentFilter([clone(department1), clone(department0)], FilterOperator.IsNotEmpty, null)).toBe(true); expect(testDepartmentFilter(null, FilterOperator.IsNotEmpty, [])).toBe(false); expect(testDepartmentFilter(null, FilterOperator.IsNotEmpty, null)).toBe(false); }); it('should equal name', () => { expect(testDepartmentFilter([clone(department1), clone(department0)], FilterOperator.NameEquals, 'test1,test')).toBe(true); // 顺序错乱则不满足条件 expect(testDepartmentFilter([clone(department1), clone(department0)], FilterOperator.NameEquals, 'test,test1')).toBe(false); }); });