Skip to content

Commit f7922cf

Browse files
committed
added test cases for pipe
1 parent 00db012 commit f7922cf

File tree

4 files changed

+48
-6
lines changed

4 files changed

+48
-6
lines changed

src/ng-multiselect-dropdown/src/list-filter.pipe.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Pipe, PipeTransform } from '@angular/core';
33
import { ListItem } from './multiselect.model';
44

55
@Pipe({
6-
name: 'ng2ListFilter',
6+
name: 'multiSelectFilter',
77
pure: false
88
})
99
export class ListFilterPipe implements PipeTransform {
@@ -15,6 +15,10 @@ export class ListFilterPipe implements PipeTransform {
1515
}
1616

1717
applyFilter(item: ListItem, filter: ListItem): boolean {
18-
return !(filter.text && item.text && item.text.toLowerCase().indexOf(filter.text.toLowerCase()) === -1);
18+
if (typeof item.text === 'string' && typeof filter.text === 'string') {
19+
return !(filter.text && item.text && item.text.toLowerCase().indexOf(filter.text.toLowerCase()) === -1);
20+
} else {
21+
return !(filter.text && item.text && item.text.toString().toLowerCase().indexOf(filter.text.toString().toLowerCase()) === -1);
22+
}
1923
}
2024
}

src/ng-multiselect-dropdown/src/multi-select.component.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
</li>
2424
</ul>
2525
<ul class="item2" [style.maxHeight]="_settings.maxHeight+'px'">
26-
<li *ngFor="let item of _data | ng2ListFilter:filter; let i = index;" (click)="onItemClick($event,item)" class="multiselect-item-checkbox">
26+
<li *ngFor="let item of _data | multiSelectFilter:filter; let i = index;" (click)="onItemClick($event,item)" class="multiselect-item-checkbox">
2727
<input type="checkbox" aria-label="multiselect-item" [checked]="isSelected(item)" [disabled]="disabled || (isLimitSelectionReached() && !isSelected(item)) || item.isDisabled" />
2828
<div>{{item.text}}</div>
2929
</li>

src/ng-multiselect-dropdown/src/multiselect.model.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export class ListItem {
2424
isDisabled?: boolean;
2525

2626
public constructor(source: any) {
27-
if (typeof source === 'string' || typeof source == 'number') {
27+
if (typeof source === 'string' || typeof source === 'number') {
2828
this.id = this.text = source;
2929
this.isDisabled = false;
3030
}
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,41 @@
1-
it('sanity test', () => {
2-
expect(1).toBe(1)
1+
import { ListFilterPipe } from '../src/list-filter.pipe'
2+
describe('multiSelectFilter', () => {
3+
let pipe: ListFilterPipe;
4+
beforeEach(() => {
5+
pipe = new ListFilterPipe();
6+
})
7+
it('should create an instance', () => {
8+
expect(pipe).toBeTruthy();
9+
});
10+
it('bad inputs:should return source data if filter data is null', () => {
11+
const sourceData = [
12+
{
13+
id: 1, text: 'Navsari'
14+
}, {
15+
id: 2, text: 'Pune'
16+
}];
17+
expect(pipe.transform(sourceData, null)).toEqual(sourceData);
18+
})
19+
it('transform string data', () => {
20+
const sourceData = [
21+
{
22+
id: 1, text: 'Navsari'
23+
}, {
24+
id: 2, text: 'Pune'
25+
}];
26+
const filterData = { id: 1, text: 'Nav' };
27+
const expectedData = [{ id: 1, text: 'Navsari' }]
28+
expect(pipe.transform(sourceData, filterData)).toEqual(expectedData);
29+
})
30+
it('transform numbers data', () => {
31+
const sourceData = [
32+
{
33+
id: 1111, text: 1111
34+
}, {
35+
id: 2222, text: 2222
36+
}];
37+
const filterData = { id: 1111, text: 1111 };
38+
const expectedData = [{ id: 1111, text: 1111 }]
39+
expect(pipe.transform(sourceData, filterData)).toEqual(expectedData);
40+
})
341
})

0 commit comments

Comments
 (0)