Files
hermes-desktop/tests/server/runtime-environment.test.ts
T
toor 01d9e301fc
Build / build (push) Canceled after 0s
Playwright / browser (push) Canceled after 0s
initialize Electron desktop app and remove unused files
2026-10-25 01:09:01 +08:00

43 lines
1.5 KiB
TypeScript

import { afterEach, describe, expect, it, vi } from 'vitest'
const originalContainer = process.env.container
async function loadRuntimeEnvironment(
options: { dockerEnvFile?: boolean; container?: string } = {},
) {
vi.resetModules()
if (options.container === undefined) delete process.env.container
else process.env.container = options.container
const existsSync = vi.fn((path: string) => path === '/.dockerenv' && options.dockerEnvFile === true)
vi.doMock('fs', () => ({ existsSync }))
const runtimeEnvironment = await import('../../packages/server/src/services/runtime-environment')
return { ...runtimeEnvironment, existsSync }
}
describe('runtime environment detection', () => {
afterEach(() => {
vi.doUnmock('fs')
vi.resetModules()
if (originalContainer === undefined) delete process.env.container
else process.env.container = originalContainer
})
it('does not classify a regular Web UI process as Docker', async () => {
const { isDockerContainer } = await loadRuntimeEnvironment()
expect(isDockerContainer()).toBe(false)
})
it('detects the Docker environment marker file', async () => {
const { isDockerContainer } = await loadRuntimeEnvironment({ dockerEnvFile: true })
expect(isDockerContainer()).toBe(true)
})
it('detects the Docker container environment variable', async () => {
const { isDockerContainer } = await loadRuntimeEnvironment({ container: 'docker' })
expect(isDockerContainer()).toBe(true)
})
})