Update selected item color in Pass menu
[ProtonMail-WebClient.git] / packages / pass / lib / search / match-chunks.spec.ts
blob4d451a4ee1fe3e33daea65091c4d6f5eaffa8f7a
1 import { matchChunks } from './match-chunks';
3 describe('getItemNameSearchChunks', () => {
4     test('should return empty array if no search term', () => {
5         expect(matchChunks('', '')).toEqual([]);
6     });
8     test('should not match if no term matches', () => {
9         expect(matchChunks('my secure notes', 'nothing')).toEqual([]);
10     });
12     test('should return a single item with a correct match', () => {
13         expect(matchChunks('my secure notes', 'my')).toEqual([
14             {
15                 start: 0,
16                 end: 2,
17             },
18         ]);
19     });
21     test('should return all items with correct matches', () => {
22         expect(matchChunks('my secure notes', 'my notes')).toEqual([
23             {
24                 start: 0,
25                 end: 2,
26             },
27             {
28                 start: 10,
29                 end: 15,
30             },
31         ]);
32     });
34     test('should return all items with correct matches in any order', () => {
35         expect(matchChunks('my secure notes', 'notes my')).toEqual([
36             {
37                 start: 0,
38                 end: 2,
39             },
40             {
41                 start: 10,
42                 end: 15,
43             },
44         ]);
45     });
47     test('should match partial terms', () => {
48         expect(matchChunks('my secure notes', 'my sec')).toEqual([
49             {
50                 start: 0,
51                 end: 2,
52             },
53             {
54                 start: 3,
55                 end: 6,
56             },
57         ]);
58     });
60     test('should be case-insensitive', () => {
61         expect(matchChunks('my secure notes', 'My SEc')).toEqual([
62             {
63                 start: 0,
64                 end: 2,
65             },
66             {
67                 start: 3,
68                 end: 6,
69             },
70         ]);
71     });
72 });