Adding test case for scenario.
This commit is contained in:
parent
212b93cbe9
commit
bff6a51af2
|
@ -199,6 +199,10 @@ export class QueryBuilder<T> {
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setAllOr() {
|
||||||
|
this.query.allOr = true
|
||||||
|
}
|
||||||
|
|
||||||
handleSpaces(input: string) {
|
handleSpaces(input: string) {
|
||||||
if (this.noEscaping) {
|
if (this.noEscaping) {
|
||||||
return input
|
return input
|
||||||
|
|
|
@ -6,9 +6,13 @@ import { QueryBuilder, paginatedSearch, fullSearch } from "../lucene"
|
||||||
const INDEX_NAME = "main"
|
const INDEX_NAME = "main"
|
||||||
|
|
||||||
const index = `function(doc) {
|
const index = `function(doc) {
|
||||||
let props = ["property", "number"]
|
let props = ["property", "number", "array"]
|
||||||
for (let key of props) {
|
for (let key of props) {
|
||||||
if (doc[key]) {
|
if (Array.isArray(doc[key])) {
|
||||||
|
for (let val of doc[key]) {
|
||||||
|
index(key, val)
|
||||||
|
}
|
||||||
|
} else if (doc[key]) {
|
||||||
index(key, doc[key])
|
index(key, doc[key])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,9 +25,14 @@ describe("lucene", () => {
|
||||||
dbName = `db-${newid()}`
|
dbName = `db-${newid()}`
|
||||||
// create the DB for testing
|
// create the DB for testing
|
||||||
db = getDB(dbName)
|
db = getDB(dbName)
|
||||||
await db.put({ _id: newid(), property: "word" })
|
await db.put({ _id: newid(), property: "word", array: ["1", "4"] })
|
||||||
await db.put({ _id: newid(), property: "word2" })
|
await db.put({ _id: newid(), property: "word2", array: ["3", "1"] })
|
||||||
await db.put({ _id: newid(), property: "word3", number: 1 })
|
await db.put({
|
||||||
|
_id: newid(),
|
||||||
|
property: "word3",
|
||||||
|
number: 1,
|
||||||
|
array: ["1", "2"],
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should be able to create a lucene index", async () => {
|
it("should be able to create a lucene index", async () => {
|
||||||
|
@ -118,6 +127,15 @@ describe("lucene", () => {
|
||||||
const resp = await builder.run()
|
const resp = await builder.run()
|
||||||
expect(resp.rows.length).toBe(2)
|
expect(resp.rows.length).toBe(2)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it("should be able to perform an or not contains search", async () => {
|
||||||
|
const builder = new QueryBuilder(dbName, INDEX_NAME)
|
||||||
|
builder.addNotContains("array", ["1"])
|
||||||
|
builder.addNotContains("array", ["2"])
|
||||||
|
builder.setAllOr()
|
||||||
|
const resp = await builder.run()
|
||||||
|
expect(resp.rows.length).toBe(2)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe("paginated search", () => {
|
describe("paginated search", () => {
|
||||||
|
|
Loading…
Reference in New Issue