Files
teleport/.pnpmfile.cjs
Ryan ClarkandMaja Cieślak 6266cd9eba Auto detect fixture usage in E2E tests, supporting changes for running enterprise e2e tests (#65141)
* Auto detect fixture usage in tests

* Changes to runner for enabling e e2e tests

* Only detect fixtures in test/UI/debug modes

* Make scanning more resilient - require test.use, allow for multiple lines

* Fix e2e/runner CI generate check

* Make scanning context aware to match with running individual tests

* Log enabled fixtures on one line

* Rename gen-fixtures, move go gen to main.go

* Return an error if no tests are matched

* gen-ts-fixtures: Use text/template instead of manually writing to buf

* Ignore generated fixtures.ts instead of formatting it

* Fix pnpm lockfile patching for when e/e2e is missing

* Simplify test running mode detection for scanning fixtures

* go generate

* Remove codegen from test run logic

* Handle run.sh receiving e/e2e directly

* Allow for fixtures to be enabled manually through flags

* Fix logging of enabled fixtures to include the ones set by flags

* Handle inline comments

* Update cmd in generated file

* Only pnpm install if teleport/connect needs building

* Error if UI mode is invoked with connect tests

* Handle errors better when checking if a binary exists

* Add info to the README about manually enabling fixtures

* Debug -> Warn

* Add test files to --ui

* Handle comments in strings properly

* Remove connect TSH from pnpm install logic

* Ignore flags in run.sh

* Handle double quotes just in case

* Add line number back

* Handle commented out imports

* Always include host.docker.internal in the certs

* Only scan fixtures in test mode/when test files are specified

* Make e2e/run.sh work with absolute paths to e/ tests

* Scan fixtures when running tests but not in UI mode

---------

Co-authored-by: Maja Cieślak <[email protected]>
2026-04-03 12:57:18 +00:00

28 lines
849 B
JavaScript

function afterAllResolved(lockfile, context) {
// The pnpm lockfile contains entries for all workspaces.
// This means that if the `e` repo is not cloned, we will get a different
// lockfile.
// The ugly workaround is to add entries for enterprise workspaces manually.
if (!lockfile.importers['e/web/teleport']) {
context.log(`Workspace 'e/web/teleport' is not present, patching lockfile.`);
lockfile.importers['e/web/teleport'] = {};
}
if (!lockfile.importers['e/e2e']) {
context.log(`Workspace 'e/e2e' is not present, patching lockfile.`);
lockfile.importers['e/e2e'] = {
dependencies: {
'@gravitational/e2e': 'link:../../e2e',
},
specifiers: {
'@gravitational/e2e': 'workspace:*',
},
};
}
return lockfile;
}
module.exports = {
hooks: {
afterAllResolved,
},
};