Open OleksandrKucherenko opened 2 years ago
Cleaner version:
const path = require("node:path");
/* ref: https://yarnpkg.com/advanced/pnpapi */
require(path.join(process.cwd(), ".pnp.cjs")).setup();
const REPORTER = "cypress-mochawesome-reporter";
const resolve = () => {
const cwd = process.cwd() + "/";
try {
const { createRequire, findPnpApi } = require(`module`);
const targetPnp = findPnpApi(cwd);
const targetRequire = createRequire(cwd);
const resolved = targetPnp.resolveRequest(REPORTER, cwd);
return targetRequire(resolved);
} catch (error) {
console.error(REPORTER + ".js: error =", error);
throw error;
}
};
module.exports = resolve();
Cleaner version:
const path = require("node:path"); /* ref: https://yarnpkg.com/advanced/pnpapi */ require(path.join(process.cwd(), ".pnp.cjs")).setup(); const REPORTER = "cypress-mochawesome-reporter"; const resolve = () => { const cwd = process.cwd() + "/"; try { const { createRequire, findPnpApi } = require(`module`); const targetPnp = findPnpApi(cwd); const targetRequire = createRequire(cwd); const resolved = targetPnp.resolveRequest(REPORTER, cwd); return targetRequire(resolved); } catch (error) { console.error(REPORTER + ".js: error =", error); throw error; } }; module.exports = resolve();
This breaks with new yarn4 PNP api
if you can open a PR and a test for that, it would be great. I'm not familiar with Yarn PnP.
Is your feature request related to a problem? Please describe.
The cause:
Describe the solution you'd like
Step #1: Add
mocha
a required yarn package, so yarn PnP can resolve it for Cypress.Step #2: create in the root of the project file
cypress-mochawesome-reporter.js
with content:Follow the original configuration steps.
Describe alternatives you've considered
Refs:
Additional context
Cypress reporter executed in "isolated" node instance that does not have enabled P'n'P logic.