UNPKG

react-native-autocomplete-search

Version:

react-native component used for autocompletion when searching data from local or remote source

81 lines (75 loc) 2.29 kB
/* @flow */ import suggest from './suggest'; import type {FormatDescribe, SuggestData,SuggestionDescribe} from './suggest'; describe('suggest searchForRelevant tests', () => { it('test path', () => { const res = suggest.searchForRelevant('', [{ val: 'val1', details: {id: '1', name: 'val'} }], {id:'details.id', name:'details.name'}); expect(res.suggest).toEqual( [{id: '1', name:'val', tags: null}] ); }); it('test path multiple data', () => { const input:Array<{}> = [{ val: 'val1', details: {id: '1', name: 'val'} },{ val: 'val2', details: {id: '2', name: 'val2'} }]; const inputFormat:FormatDescribe = { id:'details.id', name:'details.name' }; const res = suggest.searchForRelevant('', input, inputFormat); expect(res.suggest).toEqual( [{id: '1', name:'val', tags: null}, {id: '2', name:'val2', tags: null}] ); }); it('test path multiple data and tags', () => { const input:Array<{}> = [{ val: 'val1', details: {id: '1', name: 'val', country:'FR'} },{ val: 'val2', details: {id: '2', name: 'val2', country:'BE'} }]; const inputFormat:FormatDescribe = { id:'details.id', name:'details.name', tags: ['details.country'] }; const res = suggest.searchForRelevant('', input, inputFormat); expect(res.suggest).toEqual( [{id: '1', name:'val', tags: [{id: "0", item: 'FR'}]}, {id: '2', name:'val2', tags: [{id:"0", item:'BE'}]}] ); }); it('test path multiple data and multiple tags', () => { const input:Array<{}> = [{ val: 'val1', details: {id: '1', name: 'val', country:'FR', code:'S'} },{ val: 'val2', details: {id: '2', name: 'val2', country:'BE', code:'R'} }]; const inputFormat:FormatDescribe = { id:'details.id', name:'details.name', tags: ['details.country', 'details.code'] }; const res = suggest.searchForRelevant('', input, inputFormat); expect(res.suggest).toEqual( [{ id: '1', name:'val', tags: [{id: "0", item: 'FR'}, {id: "1", item: 'S'}] },{ id: '2', name:'val2', tags: [{id:"0", item:'BE'},{id: "1", item: 'R'}]}] ); }); });