UBERF-4267: fix mergeQuery, provide a test case for it (#3985)

Signed-off-by: Vyacheslav Tumanov <me@slavatumanov.me>
This commit is contained in:
Vyacheslav Tumanov 2023-11-14 14:19:14 +05:00 committed by GitHub
parent b55a8729bb
commit 0e2eb336ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 1 deletions

View File

@ -430,5 +430,18 @@ describe('memdb', () => {
expect(mergeQueries({ age: { $lt: 20 } } as any, { age: { $gt: 25 } } as any)).toEqual({ age: { $gt: 25 } })
expect(mergeQueries({ age: { $gt: 25 } } as any, { age: { $lt: 20 } } as any)).toEqual({ age: { $lt: 20 } })
const query4 = {
space: { $in: [id1] }
} as any
const query5 = {
space: { $in: [id2, id1] }
} as any
const resQuery45 = {
space: id1
} as any
expect(mergeQueries(query4, query5)).toEqual(resQuery45)
expect(mergeQueries(query5, query4)).toEqual(resQuery45)
})
})

View File

@ -378,7 +378,7 @@ function getInNiN (query1: any, query2: any): Object {
aIn.length - bIn.length < 0 ? bIn.filter((c: any) => aIn.includes(c)) : aIn.filter((c: any) => bIn.includes(c))
const finalNin = Array.from(new Set([...aNIn, ...bNIn]))
if (finalIn.length === 1 && finalNin.length === 0) {
return aIn[0]
return finalIn[0]
}
if (finalIn.length === 0 && finalNin.length === 1) {
return { $ne: finalNin[0] }