118 lines
3.1 KiB
JavaScript
118 lines
3.1 KiB
JavaScript
// lucene searching not supported in test due to use of PouchDB
|
|
let rows = []
|
|
jest.mock("../../api/controllers/row/internalSearch", () => ({
|
|
fullSearch: jest.fn(() => {
|
|
return {
|
|
rows,
|
|
}
|
|
}),
|
|
paginatedSearch: jest.fn(),
|
|
}))
|
|
const setup = require("./utilities")
|
|
|
|
const NAME = "Test"
|
|
|
|
describe("Test a query step automation", () => {
|
|
let table
|
|
let config = setup.getConfig()
|
|
|
|
beforeAll(async () => {
|
|
await config.init()
|
|
table = await config.createTable()
|
|
const row = {
|
|
name: NAME,
|
|
description: "original description",
|
|
tableId: table._id,
|
|
}
|
|
rows.push(await config.createRow(row))
|
|
rows.push(await config.createRow(row))
|
|
})
|
|
|
|
afterAll(setup.afterAll)
|
|
|
|
it("should be able to run the query step", async () => {
|
|
const inputs = {
|
|
tableId: table._id,
|
|
filters: {
|
|
equal: {
|
|
name: NAME,
|
|
},
|
|
},
|
|
sortColumn: "name",
|
|
sortOrder: "ascending",
|
|
limit: 10,
|
|
}
|
|
const res = await setup.runStep(setup.actions.QUERY_ROWS.stepId, inputs)
|
|
expect(res.success).toBe(true)
|
|
expect(res.rows).toBeDefined()
|
|
expect(res.rows.length).toBe(2)
|
|
expect(res.rows[0].name).toBe(NAME)
|
|
})
|
|
|
|
it("Returns all rows when onEmptyFilter has no value and no filters are passed", async () => {
|
|
const inputs = {
|
|
tableId: table._id,
|
|
filters: {},
|
|
sortColumn: "name",
|
|
sortOrder: "ascending",
|
|
limit: 10,
|
|
}
|
|
const res = await setup.runStep(setup.actions.QUERY_ROWS.stepId, inputs)
|
|
expect(res.success).toBe(true)
|
|
expect(res.rows).toBeDefined()
|
|
expect(res.rows.length).toBe(2)
|
|
expect(res.rows[0].name).toBe(NAME)
|
|
})
|
|
|
|
it("Returns no rows when onEmptyFilter is RETURN_NONE and theres no filters", async () => {
|
|
const inputs = {
|
|
tableId: table._id,
|
|
filters: {},
|
|
"filters-def": [],
|
|
sortColumn: "name",
|
|
sortOrder: "ascending",
|
|
limit: 10,
|
|
onEmptyFilter: "none",
|
|
}
|
|
const res = await setup.runStep(setup.actions.QUERY_ROWS.stepId, inputs)
|
|
expect(res.success).toBe(false)
|
|
expect(res.rows).toBeDefined()
|
|
expect(res.rows.length).toBe(0)
|
|
})
|
|
|
|
it("Returns no rows when onEmptyFilters RETURN_NONE and a filter is passed with a null value", async () => {
|
|
const inputs = {
|
|
tableId: table._id,
|
|
onEmptyFilter: "none",
|
|
filters: {},
|
|
"filters-def": [
|
|
{
|
|
value: null
|
|
}
|
|
],
|
|
sortColumn: "name",
|
|
sortOrder: "ascending",
|
|
limit: 10,
|
|
}
|
|
const res = await setup.runStep(setup.actions.QUERY_ROWS.stepId, inputs)
|
|
expect(res.success).toBe(false)
|
|
expect(res.rows).toBeDefined()
|
|
expect(res.rows.length).toBe(0)
|
|
})
|
|
|
|
it("Returns rows when onEmptyFilter is RETURN_ALL and no filter is passed", async () => {
|
|
const inputs = {
|
|
tableId: table._id,
|
|
onEmptyFilter: "all",
|
|
filters: {},
|
|
sortColumn: "name",
|
|
sortOrder: "ascending",
|
|
limit: 10,
|
|
}
|
|
const res = await setup.runStep(setup.actions.QUERY_ROWS.stepId, inputs)
|
|
expect(res.success).toBe(true)
|
|
expect(res.rows).toBeDefined()
|
|
expect(res.rows.length).toBe(2)
|
|
})
|
|
})
|