{"version":3,"sources":["../lib/index.ts"],"sourcesContent":["import fs from 'fs';\nimport sinon from 'sinon';\n\nexport interface ConfigPath {\n  htmlPath: string;\n  url: string;\n}\n\ntype ConfigPathsArray = ConfigPath[];\ntype ConfigPathsObject = { [key: string]: string; };\ntype ConfigPaths = ConfigPathsArray | ConfigPathsObject;\n\nexport interface Config {\n  paths: ConfigPaths;\n  throwIfNotMapped?: boolean;\n}\n\nexport default function (page, config: Config) {\n  const { paths, throwIfNotMapped } = config;\n  const originalGoto = page.goto.bind(page);\n  const stub = sinon.stub(page, 'goto');\n  stub.callsFake(async url => {\n    if (Array.isArray(paths)) {\n      for (const configPage of paths) {\n        if (url === configPage.url) {\n          const contents = fs.readFileSync(configPage.htmlPath);\n          await page.setContent(contents.toString());\n          return;\n        }\n      }\n    } else if (typeof paths === 'object' && paths !== null) {\n      for (const [configUrl, configHtmlPage] of Object.entries(paths)) {\n        if (url === configUrl) {\n          const contents = fs.readFileSync(configHtmlPage);\n          await page.setContent(contents.toString());\n          return;\n        }\n      }\n    }\n    if (throwIfNotMapped) {\n      throw new Error(`The url ${url} could not be found in your config paths.`);\n    }\n    await originalGoto(url);\n  });\n  return stub;\n}\n"],"mappings":";AAAA,OAAO,QAAQ;AACf,OAAO,WAAW;AAgBH,SAAR,YAAkB,MAAM,QAAgB;AAC7C,QAAM,EAAE,OAAO,iBAAiB,IAAI;AACpC,QAAM,eAAe,KAAK,KAAK,KAAK,IAAI;AACxC,QAAM,OAAO,MAAM,KAAK,MAAM,MAAM;AACpC,OAAK,UAAU,OAAM,QAAO;AAC1B,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,iBAAW,cAAc,OAAO;AAC9B,YAAI,QAAQ,WAAW,KAAK;AAC1B,gBAAM,WAAW,GAAG,aAAa,WAAW,QAAQ;AACpD,gBAAM,KAAK,WAAW,SAAS,SAAS,CAAC;AACzC;AAAA,QACF;AAAA,MACF;AAAA,IACF,WAAW,OAAO,UAAU,YAAY,UAAU,MAAM;AACtD,iBAAW,CAAC,WAAW,cAAc,KAAK,OAAO,QAAQ,KAAK,GAAG;AAC/D,YAAI,QAAQ,WAAW;AACrB,gBAAM,WAAW,GAAG,aAAa,cAAc;AAC/C,gBAAM,KAAK,WAAW,SAAS,SAAS,CAAC;AACzC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,QAAI,kBAAkB;AACpB,YAAM,IAAI,MAAM,WAAW,GAAG,2CAA2C;AAAA,IAC3E;AACA,UAAM,aAAa,GAAG;AAAA,EACxB,CAAC;AACD,SAAO;AACT;","names":[]}