Browse Source

Fixing issues with automation test cases running steps outside of a tenant.

pull/5584/head
mike12345567 4 years ago
parent
commit
95d8a4b939
  1. 76
      packages/server/src/api/routes/tests/misc.spec.js
  2. 20
      packages/server/src/automations/tests/utilities/index.js

76
packages/server/src/api/routes/tests/misc.spec.js

@ -43,53 +43,55 @@ describe("run misc tests", () => {
describe("test table utilities", () => {
it("should be able to import a CSV", async () => {
const table = await config.createTable({
name: "table",
type: "table",
key: "name",
schema: {
a: {
type: "string",
constraints: {
return config.doInContext(null, async () => {
const table = await config.createTable({
name: "table",
type: "table",
key: "name",
schema: {
a: {
type: "string",
constraints: {
type: "string",
},
},
},
b: {
type: "string",
constraints: {
b: {
type: "string",
constraints: {
type: "string",
},
},
},
c: {
type: "string",
constraints: {
c: {
type: "string",
constraints: {
type: "string",
},
},
},
d: {
type: "string",
constraints: {
d: {
type: "string",
constraints: {
type: "string",
},
},
},
},
})
const dataImport = {
csvString: "a,b,c,d\n1,2,3,4",
schema: {},
}
for (let col of ["a", "b", "c", "d"]) {
dataImport.schema[col] = { type: "string" }
}
await tableUtils.handleDataImport(
{ userId: "test" },
table,
dataImport
)
const rows = await config.getRows()
expect(rows[0].a).toEqual("1")
expect(rows[0].b).toEqual("2")
expect(rows[0].c).toEqual("3")
})
const dataImport = {
csvString: "a,b,c,d\n1,2,3,4",
schema: {},
}
for (let col of ["a", "b", "c", "d"]) {
dataImport.schema[col] = { type: "string" }
}
await tableUtils.handleDataImport(
{ userId: "test" },
table,
dataImport
)
const rows = await config.getRows()
expect(rows[0].a).toEqual("1")
expect(rows[0].b).toEqual("2")
expect(rows[0].c).toEqual("3")
})
})
})

20
packages/server/src/automations/tests/utilities/index.js

@ -1,4 +1,6 @@
const TestConfig = require("../../../tests/utilities/TestConfiguration")
const { TENANT_ID } = require("../../../tests/utilities/structures")
const { doInTenant } = require("@budibase/backend-core/tenancy")
const actions = require("../../actions")
const emitter = require("../../../events/index")
const env = require("../../../environment")
@ -31,14 +33,16 @@ exports.runInProd = async fn => {
}
exports.runStep = async function runStep(stepId, inputs) {
let step = await actions.getAction(stepId)
expect(step).toBeDefined()
return step({
inputs,
appId: config ? config.getAppId() : null,
// don't really need an API key, mocked out usage quota, not being tested here
apiKey: exports.apiKey,
emitter,
return doInTenant(TENANT_ID, async () => {
let step = await actions.getAction(stepId)
expect(step).toBeDefined()
return step({
inputs,
appId: config ? config.getAppId() : null,
// don't really need an API key, mocked out usage quota, not being tested here
apiKey: exports.apiKey,
emitter,
})
})
}

Loading…
Cancel
Save