const browser = require('../browser');

module.exports = async ({ timeout = 15000 }) => {
  await browser.start();
  const p = await browser.ensurePage();

  const oldUrl = p.url();

  try {
    await Promise.race([
      p.waitForNavigation({ timeout, waitUntil: 'domcontentloaded' }),
      p.waitForLoadState('domcontentloaded', { timeout })
    ]);
  } catch (e) {
  }

  const newUrl = p.url();

  return {
    success: true,
    action: "smart_wait_navigation",
    oldUrl,
    newUrl,
    changed: oldUrl !== newUrl
  };
};
