mock-puppeteer-goto
Version:
A Node module to help mock a Puppeteer page's goto method
1 lines • 2.16 kB
Source Map (JSON)
{"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":[]}