search index function

This commit is contained in:
Timo Hocker
2020-06-29 13:08:23 +02:00
parent 556645844d
commit 64f273a6ae
4 changed files with 130 additions and 23 deletions

View File

@ -179,7 +179,7 @@ test ('recursive filter multifield', (t) => {
];
const filtered = [ { name: 'foo', f: 'include' } ];
const filter = {
fields: [
field: [
'name',
'f'
],
@ -189,15 +189,6 @@ test ('recursive filter multifield', (t) => {
t.deepEqual (filtered, result);
});
test ('recursive filter multifield input error', (t) => {
t.notThrows (() => {
util.recursive_filter (
[ { foo: 'bar' } ],
[ { fields: '', field: 'foo', filter: /a/u } ]
);
});
});
test ('recursive filter undefined multifield', (t) => {
const res = util.recursive_filter (
[ { foo: 'bar' } ],
@ -213,3 +204,50 @@ test ('recursive filter undefined multifield', (t) => {
);
t.deepEqual (res, []);
});
test ('recursive filter multifield index', (t) => {
const raw = [
{ name: 'foo', f: 'include' },
{
name: 'include_bar',
children: [
{ name: 'foo' },
{ name: 'bar' }
]
},
{
name: 'baz',
children: [
{ name: 'include_foo' },
{ name: 'bar' }
]
},
{
name: 'barbaz',
children: [
{ name: 'foo' },
{ name: 'bar' }
]
}
];
const filtered = [
{
name: 'foo',
f: 'include',
search_index: 'foo include'
}
];
util.filter_index (raw, [
'name',
'f'
]);
const filter = {
field: 'search_index',
filter: /foo include/ui
};
const result = util.recursive_filter (raw, [ filter ]);
t.deepEqual (filtered, result);
});