The local-inspect oracle imported product modules with path.join(...), which Node parses as a URL scheme on Windows (D:\... -> ERR_UNSUPPORTED_ESM_URL_SCHEME), failing every tests/test_local_inspect_parity.py oracle test on the Windows CI job. Every dynamic import in tests/js/support now goes through moduleUrl, a pathToFileURL wrapper, and a node unit proves the Windows form on any host and scans the oracles so a path import cannot return.
10 lines
529 B
JavaScript
10 lines
529 B
JavaScript
// A dynamic import() takes a URL, never a filesystem path: on Windows a path such
|
|
// as D:\repo\x.mjs parses as the "d:" scheme (ERR_UNSUPPORTED_ESM_URL_SCHEME).
|
|
// Every oracle in this directory imports product modules through moduleUrl.
|
|
import { pathToFileURL } from 'node:url';
|
|
|
|
/** The file: URL for a filesystem path; `windows` forces the Windows form on any host (for tests). */
|
|
export function moduleUrl(filePath, { windows = process.platform === 'win32' } = {}) {
|
|
return pathToFileURL(filePath, { windows }).href;
|
|
}
|