mirror of
https://github.com/EKKOLearnAI/hermes-web-ui.git
synced 2026-06-06 02:50:34 +00:00
36 lines
1.3 KiB
TypeScript
36 lines
1.3 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import { homedir } from 'os'
|
|
import { join, resolve } from 'path'
|
|
import { getListenHost, getWebUiHome, shouldCreateWebUiDataDir } from '../../packages/server/src/config'
|
|
|
|
describe('server config', () => {
|
|
it('defaults to an IPv4 bind host', () => {
|
|
expect(getListenHost({})).toBe('0.0.0.0')
|
|
})
|
|
|
|
it('uses BIND_HOST when provided', () => {
|
|
expect(getListenHost({ BIND_HOST: ' :: ' })).toBe('::')
|
|
})
|
|
|
|
it('ignores blank BIND_HOST values', () => {
|
|
expect(getListenHost({ BIND_HOST: ' ' })).toBe('0.0.0.0')
|
|
})
|
|
|
|
it('defaults web-ui home to ~/.hermes-web-ui', () => {
|
|
expect(getWebUiHome({})).toBe(join(homedir(), '.hermes-web-ui'))
|
|
})
|
|
|
|
it('uses HERMES_WEB_UI_HOME when provided', () => {
|
|
expect(getWebUiHome({ HERMES_WEB_UI_HOME: ' ./tmp/hermes-ui ' })).toBe(resolve('./tmp/hermes-ui'))
|
|
})
|
|
|
|
it('uses HERMES_WEBUI_STATE_DIR as a compatibility alias', () => {
|
|
expect(getWebUiHome({ HERMES_WEBUI_STATE_DIR: ' ./tmp/hermes-state ' })).toBe(resolve('./tmp/hermes-state'))
|
|
})
|
|
|
|
it('only creates the development data directory outside production', () => {
|
|
expect(shouldCreateWebUiDataDir({ NODE_ENV: 'development' })).toBe(true)
|
|
expect(shouldCreateWebUiDataDir({ NODE_ENV: 'production' })).toBe(false)
|
|
})
|
|
})
|