fuzzy-tools
Version:
Functions for fuzzy matching and items filtering
22 lines (19 loc) • 991 B
JavaScript
import { matchList } from '../../src';
const testData = [
['fuz', ['fuz--', '--fuz'], [[{ begin: 0, end: 2 }], [{ begin: 2, end: 4 }]]],
['abc', ['--ab---c---'], [[{ begin: 2, end: 3 }, { begin: 7, end: 7 }]]],
];
describe('matchList(..., { withRanges: true }).ranges', () => {
test.each(testData)('%#. %s', (what, whereList, expected) => {
const result = matchList(what, whereList, { withRanges: true });
expect(Object.values(result.matches).length).toBe(whereList.length);
const ranges = Object.values(result.matches).map(el => el.ranges);
expect(ranges).toEqual(expected);
});
test.each(testData)('%#. %s / withScore = false', (what, whereList, expected) => {
const result = matchList(what, whereList, { withRanges: true, withScore: false });
expect(Object.values(result.matches).length).toBe(whereList.length);
const ranges = Object.values(result.matches).map(el => el.ranges);
expect(ranges).toEqual(expected);
});
});