Adding re-triggering of test case to help with running test case in GH actions.
This commit is contained in:
parent
8765c185af
commit
4bf40a976d
|
@ -13,7 +13,7 @@ const {
|
|||
|
||||
const { delay } = require("./testUtils")
|
||||
|
||||
const MAX_RETRIES = 10
|
||||
const MAX_RETRIES = 4
|
||||
const TEST_AUTOMATION = {
|
||||
_id: "Test Automation",
|
||||
name: "My Automation",
|
||||
|
@ -66,6 +66,15 @@ describe("/automations", () => {
|
|||
automation = { ...automation, ...TEST_AUTOMATION }
|
||||
}
|
||||
|
||||
const triggerWorkflow = async (automationId) => {
|
||||
return await request
|
||||
.post(`/api/automations/${automationId}/trigger`)
|
||||
.send({ name: "Test", description: "TEST" })
|
||||
.set(defaultHeaders(app._id, instance._id))
|
||||
.expect('Content-Type', /json/)
|
||||
.expect(200)
|
||||
}
|
||||
|
||||
describe("get definitions", () => {
|
||||
it("returns a list of definitions for actions", async () => {
|
||||
const res = await request
|
||||
|
@ -160,16 +169,14 @@ describe("/automations", () => {
|
|||
TEST_AUTOMATION.definition.trigger.inputs.modelId = model._id
|
||||
TEST_AUTOMATION.definition.steps[0].inputs.record.modelId = model._id
|
||||
await createAutomation()
|
||||
const res = await request
|
||||
.post(`/api/automations/${automation._id}/trigger`)
|
||||
.send({ name: "Test", description: "TEST" })
|
||||
.set(defaultHeaders(app._id, instance._id))
|
||||
.expect('Content-Type', /json/)
|
||||
.expect(200)
|
||||
expect(res.body.message).toEqual(`Automation ${automation._id} has been triggered.`)
|
||||
expect(res.body.automation.name).toEqual(TEST_AUTOMATION.name)
|
||||
// wait for automation to complete in background
|
||||
// this looks a bit mad but we don't actually have a way to wait for a response from the automation to
|
||||
// know that it has finished all of its actions - this is currently the best way
|
||||
// also when this runs in CI it is very temper-mental so for now trying to make run stable by repeating until it works
|
||||
// TODO: update when workflow logs are a thing
|
||||
for (let tries = 0; tries < MAX_RETRIES; tries++) {
|
||||
const res = await triggerWorkflow(automation._id)
|
||||
expect(res.body.message).toEqual(`Automation ${automation._id} has been triggered.`)
|
||||
expect(res.body.automation.name).toEqual(TEST_AUTOMATION.name)
|
||||
await delay(500)
|
||||
let elements = await getAllFromModel(request, app._id, instance._id, model._id)
|
||||
// don't test it unless there are values to test
|
||||
|
|
Loading…
Reference in New Issue