mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-08 17:06:15 -08:00
ci(test): download the Electron binary once before unit specs run (#1739)
This commit is contained in:
1 parent
de7b19aee2
commit
76dd8c099e
6 files changed
+152
-17
No files matched your search
@@ -107,6 +107,19 @@ with `diagnostics: false`); `isolatedModules`-incompatible syntax such as a
|
||||
type re-export without `export type` still fails at load time, and spec type
|
||||
errors are caught by `typecheck:spec` (see Unit And Type Checks).
|
||||
|
||||
Some `electron-backend` and `database` specs run SQLite code in the Electron
|
||||
binary under `ELECTRON_RUN_AS_NODE`, resolving it with `require('electron')`.
|
||||
pnpm does not run Electron's postinstall (`electron` is deliberately absent from
|
||||
`onlyBuiltDependencies`, see [workspace shell](workspace-shell.md)), so the
|
||||
first `require` downloads and extracts the binary. With projects and Jest
|
||||
workers in parallel, one process can exec it while another is still extracting
|
||||
it (`spawnSync … ETXTBSY` on Linux). When a selected project has a spec that
|
||||
calls `createRequire(...)('electron')`, `coverage:unit:ci` first runs
|
||||
`tools/testing/ensure-electron-binary.mjs`, which downloads the binary once and
|
||||
fails unless it runs and reports the pinned version; CI also runs it as its own
|
||||
step when the Tier A suite is in scope. In a fresh worktree, run it before
|
||||
starting several of these specs at once by other means.
|
||||
|
||||
In CI, a pull request skips the Tier A suite (and the merged-coverage upload)
|
||||
when every changed file is outside Tier A test inputs:
|
||||
`tools/coverage/unit-coverage-scope.mjs` holds the allowlist (Markdown, `docs/`,
|
||||
|
||||
Reference in new issue
Block a user