make polling function a global function

This commit is contained in:
2025-02-03 23:07:55 -08:00
parent b252adb5d4
commit 179fa07d36

View File

@@ -15,6 +15,23 @@ ya+yfGi3g2ZUv6hrfe+j08ytekPHjXS0qzJoVELzKHa6EL9YAoZDXBtB6h+fGhXe
SOcONbaf SOcONbaf
-----END PRIVATE KEY-----` -----END PRIVATE KEY-----`
/**
* Wait for a condition to become true until the timeout
* is hit.
* @param condition
* @param timeout
* @param interval
*/
async function waitForCondition(condition: () => boolean, timeout = 5000, interval = 500) {
const startTime = Date.now();
while (!condition()) {
if (Date.now() - startTime > timeout) {
throw new Error("Timeout waiting for condition");
}
await new Promise((resolve) => setTimeout(resolve, interval));
}
}
describe("NotificationService", () => { describe("NotificationService", () => {
let repository: UnoptimizedInMemoryRepository let repository: UnoptimizedInMemoryRepository
let notificationService: NotificationService; let notificationService: NotificationService;
@@ -98,15 +115,6 @@ describe("NotificationService", () => {
// Assert // Assert
// Because repository publisher calls subscriber without await // Because repository publisher calls subscriber without await
// wait for the change to occur first // wait for the change to occur first
async function waitForCondition(condition: () => boolean, timeout = 5000, interval = 500) {
const startTime = Date.now();
while (!condition()) {
if (Date.now() - startTime > timeout) {
throw new Error("Timeout waiting for condition");
}
await new Promise((resolve) => setTimeout(resolve, interval));
}
}
await waitForCondition(() => !notificationService.isNotificationScheduled(notificationData1)); await waitForCondition(() => !notificationService.isNotificationScheduled(notificationData1));