MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: /home/cafsindia/snap.cafsinfotech.in/node_modules/pusher-js/spec/javascripts/helpers/waitsFor.js
let interval = 50;

/**
 * waitsFor backports the jasmine@1.x.x waitsFor feature to keep old tests working
 *
 * @deprecated You shouldn't use this for writing new tests
 *
 * @param {Function} condition
 * @param {string} reason
 * @param {number} timeout
 * @returns
 */
module.exports = async (condition, reason, timeout) => {
  if (typeof condition !== 'function') {
    throw new Error('Condition is not a function');
  }

  if (typeof reason !== 'string') {
    throw new Error('Reason is not a string');
  }

  if (typeof timeout !== 'number') {
    throw new Error('Timeout is not a number');
  }

  while (timeout >= 0) {
    if (condition()) {
      return;
    }

    await new Promise(r => setTimeout(r, interval));

    timeout -= interval;
  }

  throw new Error(`waitsFor on "${reason}" timed out`);
};