Adding re-triggering of test case to help with running test case in GH actions.

This commit is contained in:
mike12345567 2020-09-23 16:35:34 +01:00
parent 8765c185af
commit 4bf40a976d
1 changed files with 17 additions and 10 deletions

View File

@ -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)
// 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)
// wait for automation to complete in background
for (let tries = 0; tries < MAX_RETRIES; tries++) {
await delay(500)
let elements = await getAllFromModel(request, app._id, instance._id, model._id)
// don't test it unless there are values to test