Skip to content

Commit

Permalink
fix(waitForFunction): clearing timeout when callback function returns…
Browse files Browse the repository at this point in the history
… a truthy value (#283)
  • Loading branch information
almog-geva committed Sep 5, 2022
1 parent 77989a3 commit 2d86fbf
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 13 deletions.
3 changes: 2 additions & 1 deletion __snapshots__/lighthouse-e2e.test.ts.js
Original file line number Diff line number Diff line change
Expand Up @@ -227,12 +227,13 @@ const puppeteer = require('puppeteer'); // v13.0.0 or later
async function waitForFunction(fn, timeout) {
let isActive = true;
setTimeout(() => {
const timeoutId = setTimeout(() => {
isActive = false;
}, timeout);
while (isActive) {
const result = await fn();
if (result) {
clearTimeout(timeoutId);
return;
}
await new Promise(resolve => setTimeout(resolve, 100));
Expand Down
30 changes: 20 additions & 10 deletions __snapshots__/stringify.test.ts.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,12 +144,13 @@ const puppeteer = require('puppeteer'); // v13.0.0 or later
async function waitForFunction(fn, timeout) {
let isActive = true;
setTimeout(() => {
const timeoutId = setTimeout(() => {
isActive = false;
}, timeout);
while (isActive) {
const result = await fn();
if (result) {
clearTimeout(timeoutId);
return;
}
await new Promise(resolve => setTimeout(resolve, 100));
Expand Down Expand Up @@ -316,12 +317,13 @@ const puppeteer = require('puppeteer'); // v13.0.0 or later
async function waitForFunction(fn, timeout) {
let isActive = true;
setTimeout(() => {
const timeoutId = setTimeout(() => {
isActive = false;
}, timeout);
while (isActive) {
const result = await fn();
if (result) {
clearTimeout(timeoutId);
return;
}
await new Promise(resolve => setTimeout(resolve, 100));
Expand Down Expand Up @@ -492,12 +494,13 @@ const puppeteer = require('puppeteer'); // v13.0.0 or later
async function waitForFunction(fn, timeout) {
let isActive = true;
setTimeout(() => {
const timeoutId = setTimeout(() => {
isActive = false;
}, timeout);
while (isActive) {
const result = await fn();
if (result) {
clearTimeout(timeoutId);
return;
}
await new Promise(resolve => setTimeout(resolve, 100));
Expand Down Expand Up @@ -667,12 +670,13 @@ const puppeteer = require('puppeteer'); // v13.0.0 or later
async function waitForFunction(fn, timeout) {
let isActive = true;
setTimeout(() => {
const timeoutId = setTimeout(() => {
isActive = false;
}, timeout);
while (isActive) {
const result = await fn();
if (result) {
clearTimeout(timeoutId);
return;
}
await new Promise(resolve => setTimeout(resolve, 100));
Expand Down Expand Up @@ -844,12 +848,13 @@ const puppeteer = require('puppeteer'); // v13.0.0 or later
async function waitForFunction(fn, timeout) {
let isActive = true;
setTimeout(() => {
const timeoutId = setTimeout(() => {
isActive = false;
}, timeout);
while (isActive) {
const result = await fn();
if (result) {
clearTimeout(timeoutId);
return;
}
await new Promise(resolve => setTimeout(resolve, 100));
Expand Down Expand Up @@ -1009,12 +1014,13 @@ const puppeteer = require('puppeteer'); // v13.0.0 or later
async function waitForFunction(fn, timeout) {
let isActive = true;
setTimeout(() => {
const timeoutId = setTimeout(() => {
isActive = false;
}, timeout);
while (isActive) {
const result = await fn();
if (result) {
clearTimeout(timeoutId);
return;
}
await new Promise(resolve => setTimeout(resolve, 100));
Expand Down Expand Up @@ -1174,12 +1180,13 @@ const puppeteer = require('puppeteer'); // v13.0.0 or later
async function waitForFunction(fn, timeout) {
let isActive = true;
setTimeout(() => {
const timeoutId = setTimeout(() => {
isActive = false;
}, timeout);
while (isActive) {
const result = await fn();
if (result) {
clearTimeout(timeoutId);
return;
}
await new Promise(resolve => setTimeout(resolve, 100));
Expand Down Expand Up @@ -1345,12 +1352,13 @@ const puppeteer = require('puppeteer'); // v13.0.0 or later
async function waitForFunction(fn, timeout) {
let isActive = true;
setTimeout(() => {
const timeoutId = setTimeout(() => {
isActive = false;
}, timeout);
while (isActive) {
const result = await fn();
if (result) {
clearTimeout(timeoutId);
return;
}
await new Promise(resolve => setTimeout(resolve, 100));
Expand Down Expand Up @@ -1512,12 +1520,13 @@ const puppeteer = require('puppeteer'); // v13.0.0 or later
async function waitForFunction(fn, timeout) {
let isActive = true;
setTimeout(() => {
const timeoutId = setTimeout(() => {
isActive = false;
}, timeout);
while (isActive) {
const result = await fn();
if (result) {
clearTimeout(timeoutId);
return;
}
await new Promise(resolve => setTimeout(resolve, 100));
Expand Down Expand Up @@ -1679,12 +1688,13 @@ const puppeteer = require('puppeteer'); // v13.0.0 or later
async function waitForFunction(fn, timeout) {
let isActive = true;
setTimeout(() => {
const timeoutId = setTimeout(() => {
isActive = false;
}, timeout);
while (isActive) {
const result = await fn();
if (result) {
clearTimeout(timeoutId);
return;
}
await new Promise(resolve => setTimeout(resolve, 100));
Expand Down
3 changes: 2 additions & 1 deletion src/PuppeteerRunnerExtension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -636,12 +636,13 @@ async function waitForFunction(
timeout: number
): Promise<void> {
let isActive = true;
setTimeout(() => {
const timeoutId = setTimeout(() => {
isActive = false;
}, timeout);
while (isActive) {
const result = await fn();
if (result) {
clearTimeout(timeoutId);
return;
}
await new Promise((resolve) => setTimeout(resolve, 100));
Expand Down
3 changes: 2 additions & 1 deletion src/PuppeteerStringifyExtension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -448,12 +448,13 @@ async function querySelectorAll(selector, frame) {
async function waitForFunction(fn, timeout) {
let isActive = true;
setTimeout(() => {
const timeoutId = setTimeout(() => {
isActive = false;
}, timeout);
while (isActive) {
const result = await fn();
if (result) {
clearTimeout(timeoutId);
return;
}
await new Promise(resolve => setTimeout(resolve, 100));
Expand Down

0 comments on commit 2d86fbf

Please sign in to comment.