test: fix windows path isolation (#659)
This commit is contained in:
@@ -12,7 +12,7 @@ function walkFiles(dir: string, files: string[] = []): string[] {
|
||||
const path = join(dir, entry.name)
|
||||
if (entry.isDirectory()) {
|
||||
walkFiles(path, files)
|
||||
} else if (/\.(ts|vue)$/.test(entry.name) && !path.includes('/i18n/locales/')) {
|
||||
} else if (/\.(ts|vue)$/.test(entry.name) && !path.replace(/\\/g, '/').includes('/i18n/locales/')) {
|
||||
files.push(path)
|
||||
}
|
||||
}
|
||||
@@ -76,6 +76,6 @@ describe('i18n locale coverage', () => {
|
||||
})
|
||||
|
||||
it('keeps the coverage scanner rooted in client source files', () => {
|
||||
expect(relative(process.cwd(), SOURCE_ROOT)).toBe('packages/client/src')
|
||||
expect(relative(process.cwd(), SOURCE_ROOT)).toBe(join('packages', 'client', 'src'))
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { afterAll, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { join } from 'path'
|
||||
|
||||
type FsMocks = {
|
||||
readFile: ReturnType<typeof vi.fn>
|
||||
@@ -20,8 +21,8 @@ async function loadAuth(overrides: Partial<FsMocks> & { home?: string } = {}) {
|
||||
return {
|
||||
...mod,
|
||||
mocks: { readFile, writeFile, mkdir },
|
||||
appHome: `${home}/.hermes-web-ui`,
|
||||
tokenFile: `${home}/.hermes-web-ui/.token`,
|
||||
appHome: join(home, '.hermes-web-ui'),
|
||||
tokenFile: join(home, '.hermes-web-ui', '.token'),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,12 +95,14 @@ describe('Auth Service', () => {
|
||||
|
||||
const token = await getToken()
|
||||
|
||||
const expectedWriteOptions = process.platform === 'win32' ? {} : { mode: 0o600 }
|
||||
|
||||
expect(token).toMatch(/^[a-f0-9]{64}$/)
|
||||
expect(mkdir).toHaveBeenCalledWith(appHome, { recursive: true })
|
||||
expect(writeFile).toHaveBeenCalledWith(
|
||||
tokenFile,
|
||||
expect.stringMatching(/^[a-f0-9]{64}\n$/),
|
||||
{ mode: 0o600 },
|
||||
expectedWriteOptions,
|
||||
)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -4,6 +4,9 @@ import { join } from 'path'
|
||||
import { tmpdir } from 'os'
|
||||
|
||||
let homeDir = ''
|
||||
const originalHermesHome = process.env.HERMES_HOME
|
||||
const originalLocalAppData = process.env.LOCALAPPDATA
|
||||
const originalAppData = process.env.APPDATA
|
||||
|
||||
function hermesPath(...parts: string[]) {
|
||||
return join(homeDir, '.hermes', ...parts)
|
||||
@@ -20,6 +23,9 @@ function writeModelsCache(data: Record<string, unknown>) {
|
||||
}
|
||||
|
||||
async function loadModelContext() {
|
||||
process.env.HERMES_HOME = hermesPath()
|
||||
delete process.env.LOCALAPPDATA
|
||||
delete process.env.APPDATA
|
||||
vi.resetModules()
|
||||
vi.doMock('os', async () => ({
|
||||
...(await vi.importActual<typeof import('os')>('os')),
|
||||
@@ -43,6 +49,12 @@ describe('getModelContextLength', () => {
|
||||
|
||||
afterEach(() => {
|
||||
vi.doUnmock('os')
|
||||
if (originalHermesHome === undefined) delete process.env.HERMES_HOME
|
||||
else process.env.HERMES_HOME = originalHermesHome
|
||||
if (originalLocalAppData === undefined) delete process.env.LOCALAPPDATA
|
||||
else process.env.LOCALAPPDATA = originalLocalAppData
|
||||
if (originalAppData === undefined) delete process.env.APPDATA
|
||||
else process.env.APPDATA = originalAppData
|
||||
if (homeDir) rmSync(homeDir, { recursive: true, force: true })
|
||||
homeDir = ''
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user