test: make five suites Windows-runner clean
First ci-windows run exposed four platform assumptions in the fixtures: - smoke: the scratch repo inherited the runner's system-wide core.autocrlf=true (Git for Windows default), so every index restore smudged LF to CRLF and broke the byte-exact assertions — pin core.autocrlf=false in the fixture (eol policy is not what these destructive-op tests are about). - git / git-worktree: Windows TEMP is the 8.3 short form (C:\Users\RUNNER~1\...) while git reports long paths, and realpathSync does not expand 8.3 aliases — switch the canonicalizer to realpathSync.native (libuv resolves via GetFinalPathNameByHandle, which does); same trick as the existing macOS /var workaround. - bundle-route: the ETag memo revalidates on stat (mtime+size) and Windows updates file timestamps lazily, so the equal-size rewrite still looked unchanged — change the length too. - market-manifest: GNU tar (Git Bash) reads the drive-letter colon of absolute Windows paths as a remote-host spec — run it from the pack dir with the bare tarball name instead.
This commit is contained in:
+6
-2
@@ -11,8 +11,12 @@ import { parseLogLines, parsePorcelainZ, repoRoots, status } from '../src/git.ts
|
||||
const execFileAsync = promisify(execFile)
|
||||
const normalizePath = (path: string): string => path.replaceAll('\\', '/')
|
||||
// macOS tmpdir() is the /var symlink while git reports the resolved
|
||||
// /private/var prefix — canonicalize both sides before comparing.
|
||||
const canonical = (path: string): string => normalizePath(realpathSync(path))
|
||||
// /private/var prefix; on Windows TEMP is often the 8.3 short form
|
||||
// (C:\Users\RUNNER~1\...) while git reports the long path. The NATIVE
|
||||
// realpath resolves both aliasings (libuv canonicalizes on Windows via
|
||||
// GetFinalPathNameByHandle, which expands 8.3 names) — canonicalize both
|
||||
// sides before comparing.
|
||||
const canonical = (path: string): string => normalizePath(realpathSync.native(path))
|
||||
|
||||
describe('git parsing', () => {
|
||||
it('discovers and selects direct child repositories under a workspace directory', async () => {
|
||||
|
||||
Reference in New Issue
Block a user