Files
bare-operating-system/packages/bare-os-booter/test.bare-holesail-managed.js
T
2026-04-22 05:40:16 -04:00

86 lines
2.3 KiB
JavaScript

import test from 'brittle'
import {
BARE_HOLESAIL_STATE_USER,
bareHolesailManagedEnvForConnectionId,
bareHolesailManagedNormalizeEntry,
bareHolesailManagedStatePath,
bareHolesailManagedValidateId
} from './lib/bare-holesail-managed.js'
import { holesailCliParseAdd } from './lib/holesail-cli.js'
test('bareHolesailManagedStatePath defaults to ~/.holesail and honors override', (t) => {
t.is(
bareHolesailManagedStatePath({
USER: 'guest',
HOME: '/home/guest'
}),
BARE_HOLESAIL_STATE_USER
)
t.is(
bareHolesailManagedStatePath({
USER: 'alice',
HOME: '/home/alice'
}),
BARE_HOLESAIL_STATE_USER
)
t.is(
bareHolesailManagedStatePath({
USER: 'alice',
HOME: '/home/alice',
BARE_OS_HOLESAIL_STATE: '/tmp/custom.json'
}),
'/tmp/custom.json'
)
t.is(bareHolesailManagedStatePath({}), BARE_HOLESAIL_STATE_USER)
})
test('bareHolesailManagedEnvForConnectionId is identity on env', (t) => {
const env = { USER: 'u', HOME: '/home/u', BARE_OS_HOLESAIL_STATE: '/x.json' }
const g = bareHolesailManagedEnvForConnectionId(env, 'bare-www-8088')
t.is(g, env)
const u = bareHolesailManagedEnvForConnectionId(env, 'my-tunnel')
t.is(u, env)
})
test('bareHolesailManagedValidateId', (t) => {
t.ok(bareHolesailManagedValidateId('a').ok)
t.ok(bareHolesailManagedValidateId('t1._-x').ok)
t.absent(bareHolesailManagedValidateId('').ok)
t.absent(bareHolesailManagedValidateId('bad id').ok)
})
test('bareHolesailManagedNormalizeEntry server', (t) => {
const r = bareHolesailManagedNormalizeEntry({ server: true, port: '8080' })
t.ok(r.ok)
t.is(r.entry.server, true)
t.is(r.entry.client, false)
t.is(r.entry.port, 8080)
})
test('bareHolesailManagedNormalizeEntry client needs key', (t) => {
const r = bareHolesailManagedNormalizeEntry({ client: true })
t.absent(r.ok)
})
test('holesailCliParseAdd', (t) => {
const r = holesailCliParseAdd(['t', '--server', '--port', '9000'])
t.ok(r.ok)
t.is(r.id, 't')
t.is(r.entry.server, true)
t.is(r.entry.port, 9000)
})
test('holesailCliParseAdd implicit hs key', (t) => {
const r = holesailCliParseAdd([
't',
'--client',
'hs://s000477b2d983364922df1296a65aeaa2d2a',
'--port',
'8888'
])
t.ok(r.ok)
t.is(r.entry.client, true)
t.is(r.entry.key, 'hs://s000477b2d983364922df1296a65aeaa2d2a')
t.is(r.entry.port, 8888)
})