installed pty
[VSoRC/.git] / node_modules / node-pty / src / testUtils.test.ts
diff --git a/node_modules/node-pty/src/testUtils.test.ts b/node_modules/node-pty/src/testUtils.test.ts
new file mode 100644 (file)
index 0000000..0bdabff
--- /dev/null
@@ -0,0 +1,23 @@
+/**
+ * Copyright (c) 2019, Microsoft Corporation (MIT License).
+ */
+
+export function pollUntil(cb: () => boolean, timeout: number, interval: number): Promise<void> {
+  return new Promise<void>((resolve, reject) => {
+    const intervalId = setInterval(() => {
+      if (cb()) {
+        clearInterval(intervalId);
+        clearTimeout(timeoutId);
+        resolve();
+      }
+    }, interval);
+    const timeoutId = setTimeout(() => {
+      clearInterval(intervalId);
+      if (cb()) {
+        resolve();
+      } else {
+        reject();
+      }
+    }, timeout);
+  });
+}