Add skip tests
This commit is contained in:
parent
47cc291551
commit
30c66748af
|
@ -136,6 +136,67 @@ describe("lucene", () => {
|
|||
const resp = await builder.run()
|
||||
expect(resp.rows.length).toBe(2)
|
||||
})
|
||||
|
||||
describe("skip", () => {
|
||||
const skipDbName = `db-${newid()}`
|
||||
let docs: {
|
||||
_id: string
|
||||
property: string
|
||||
array: string[]
|
||||
}[]
|
||||
|
||||
beforeAll(async () => {
|
||||
const db = getDB(skipDbName)
|
||||
|
||||
docs = Array(1500)
|
||||
.fill(0)
|
||||
.map((_, i) => ({
|
||||
_id: i.toString().padStart(4, "0"),
|
||||
property: `value${i}`,
|
||||
array: [],
|
||||
}))
|
||||
await db.bulkDocs(docs)
|
||||
|
||||
await db.put({
|
||||
_id: "_design/database",
|
||||
indexes: {
|
||||
[INDEX_NAME]: {
|
||||
index: index,
|
||||
analyzer: "standard",
|
||||
},
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
it("should be able to apply skip", async () => {
|
||||
const builder = new QueryBuilder(skipDbName, INDEX_NAME)
|
||||
const firstResponse = await builder.run()
|
||||
builder.setSkip(40)
|
||||
const secondResponse = await builder.run()
|
||||
|
||||
// Return the default limit
|
||||
expect(firstResponse.rows.length).toBe(50)
|
||||
expect(secondResponse.rows.length).toBe(50)
|
||||
|
||||
// Should have the expected overlap
|
||||
expect(firstResponse.rows.slice(40)).toEqual(
|
||||
secondResponse.rows.slice(0, 10)
|
||||
)
|
||||
})
|
||||
|
||||
it("should handle limits", async () => {
|
||||
const builder = new QueryBuilder(skipDbName, INDEX_NAME)
|
||||
builder.setLimit(10)
|
||||
builder.setSkip(50)
|
||||
builder.setSort("_id")
|
||||
|
||||
const resp = await builder.run()
|
||||
expect(resp.rows.length).toBe(10)
|
||||
expect(resp.rows).toEqual(
|
||||
docs.slice(50, 60).map(expect.objectContaining)
|
||||
)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe("paginated search", () => {
|
||||
|
|
Loading…
Reference in New Issue