Respond to Adri's feedback.
This commit is contained in:
parent
5aeac61cd1
commit
6952ca325a
|
@ -40,6 +40,7 @@ export interface TestQueueMessage<T = any> extends Partial<Job<T>> {
|
|||
queue: Queue<T>
|
||||
data: any
|
||||
opts?: JobOptions
|
||||
manualTrigger?: boolean
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -90,10 +91,9 @@ export class InMemoryQueue<T = any> implements Partial<Queue<T>> {
|
|||
this._emitter.on("message", async msg => {
|
||||
const message = cloneDeep(msg)
|
||||
|
||||
const isManualTrigger = (message as any).manualTrigger === true
|
||||
// For the purpose of testing, don't trigger cron jobs immediately.
|
||||
// Require the test to trigger them manually with timestamps.
|
||||
if (!isManualTrigger && message.opts?.repeat != null) {
|
||||
if (!message.manualTrigger && message.opts?.repeat != null) {
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -216,8 +216,7 @@ export class InMemoryQueue<T = any> implements Partial<Queue<T>> {
|
|||
manualTrigger(id: JobId) {
|
||||
for (const message of this._messages) {
|
||||
if (message.id === id) {
|
||||
const forceMessage = { ...message, manualTrigger: true }
|
||||
this._emitter.emit("message", forceMessage)
|
||||
this._emitter.emit("message", { ...message, manualTrigger: true })
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ import {
|
|||
import { automations } from "@budibase/pro"
|
||||
import { AutomationData, AutomationStatus } from "@budibase/types"
|
||||
import { MAX_AUTOMATION_RECURRING_ERRORS } from "../../../constants"
|
||||
import { Job } from "bull"
|
||||
import { queue } from "@budibase/backend-core"
|
||||
|
||||
describe("cron trigger", () => {
|
||||
const config = new TestConfiguration()
|
||||
|
@ -80,7 +80,7 @@ describe("cron trigger", () => {
|
|||
)
|
||||
|
||||
await config.withProdApp(async () => {
|
||||
let results: Job<AutomationData>[] = []
|
||||
let results: queue.TestQueueMessage<AutomationData>[] = []
|
||||
const removed = await captureAutomationRemovals(automation, async () => {
|
||||
results = await captureAutomationResults(automation, async () => {
|
||||
for (let i = 0; i < MAX_AUTOMATION_RECURRING_ERRORS; i++) {
|
||||
|
|
|
@ -120,19 +120,22 @@ export async function captureAutomationMessages(
|
|||
*/
|
||||
export async function captureAllAutomationResults(
|
||||
f: () => Promise<unknown>
|
||||
): Promise<Job<AutomationData>[]> {
|
||||
const runs: Job<AutomationData>[] = []
|
||||
): Promise<queue.TestQueueMessage<AutomationData>[]> {
|
||||
const runs: queue.TestQueueMessage<AutomationData>[] = []
|
||||
const queue = getQueue()
|
||||
let messagesOutstanding = 0
|
||||
|
||||
const completedListener = async (job: Job<AutomationData>) => {
|
||||
const completedListener = async (
|
||||
job: queue.TestQueueMessage<AutomationData>
|
||||
) => {
|
||||
runs.push(job)
|
||||
messagesOutstanding--
|
||||
}
|
||||
const messageListener = async (message: Job<AutomationData>) => {
|
||||
const messageListener = async (
|
||||
message: queue.TestQueueMessage<AutomationData>
|
||||
) => {
|
||||
// Don't count cron messages, as they don't get triggered automatically.
|
||||
const isManualTrigger = (message as any).manualTrigger === true
|
||||
if (!isManualTrigger && message.opts?.repeat != null) {
|
||||
if (!message.manualTrigger && message.opts?.repeat != null) {
|
||||
return
|
||||
}
|
||||
messagesOutstanding++
|
||||
|
|
Loading…
Reference in New Issue