Files
dsh/upstream/container/test/compose-config.mjs
T

76 lines
3.2 KiB
JavaScript
Executable File

#!/usr/bin/env node
import assert from 'node:assert/strict'
import { spawnSync } from 'node:child_process'
import { resolve } from 'node:path'
function render(overrides = {}) {
const env = {
...process.env,
DSH_DEFAULT_WORKSPACE: '/workspace',
DSH_IMAGE_TAG: 'latest',
DSH_LISTEN_ADDRESS: '0.0.0.0',
DSH_PORT: '3080',
DSH_PROXY_POLYFILL: 'true',
DSH_TELEMETRY_DISABLED: 'true',
DSH_TRUSTED_HOSTS: '',
DSH_WORKSPACE: './workspace',
...overrides,
}
if (!Object.hasOwn(overrides, 'DSH_SUDO_ENABLED')) delete env.DSH_SUDO_ENABLED
const result = spawnSync(
'docker',
['compose', '--env-file', '/dev/null', '-f', 'docker-compose.yaml', 'config', '--format', 'json'],
{
encoding: 'utf8',
env,
},
)
assert.equal(result.status, 0, result.stderr)
return JSON.parse(result.stdout).services['deepseek-harness']
}
const defaults = render()
assert.equal(defaults.image, 'szcq/deepseek-harness:latest')
assert.equal(defaults.container_name, 'deepseek-harness')
assert.equal(defaults.ports[0].host_ip, '0.0.0.0')
assert.equal(defaults.ports[0].published, '3080')
assert.equal(Object.hasOwn(defaults.environment, 'DSH_PROXY_USERNAME'), false)
assert.equal(Object.hasOwn(defaults.environment, 'DSH_PROXY_PASSWORD'), false)
assert.equal(Object.hasOwn(defaults.environment, 'DSH_PLATFORM_PASSWORD'), false)
assert.equal(defaults.environment.DSH_PROXY_POLYFILL, 'true')
assert.equal(defaults.environment.DSH_TRUSTED_HOSTS, '')
assert.equal(Object.hasOwn(defaults.environment, 'DSH_UPDATE_METADATA_URL'), false)
assert.deepEqual(defaults.group_add, ['dsh-sudo-false'])
assert.equal(defaults.environment.DSH_EXPERIMENTAL_PROBATION_SECONDS, '120')
assert.equal(defaults.environment.DSH_LOG_MAX_BYTES, '104857600')
assert.equal(defaults.environment.DSH_PLATFORM_DATA, '/data/platform')
assert.equal(defaults.environment.DSH_HOME, '/data/dsh')
assert.deepEqual(defaults.volumes.map(volume => volume.target).sort(), ['/data/dsh', '/data/platform', '/workspace'])
assert.equal(defaults.volumes.find(volume => volume.target === '/data/dsh').type, 'volume')
assert.equal(defaults.volumes.find(volume => volume.target === '/data/platform').type, 'volume')
assert.equal(defaults.volumes.find(volume => volume.target === '/workspace').source, resolve('./workspace'))
const configured = render({
DSH_IMAGE_TAG: '1.0.0',
DSH_LISTEN_ADDRESS: '0.0.0.0',
DSH_PORT: '4080',
DSH_PROXY_POLYFILL: 'false',
DSH_SUDO_ENABLED: 'true',
DSH_TELEMETRY_DISABLED: 'false',
DSH_TRUSTED_HOSTS: '192.168.1.10,dsh.example:8443',
})
assert.equal(configured.image, 'szcq/deepseek-harness:1.0.0')
assert.equal(configured.ports[0].host_ip, '0.0.0.0')
assert.equal(configured.ports[0].published, '4080')
assert.equal(Object.hasOwn(configured.environment, 'DSH_PROXY_USERNAME'), false)
assert.equal(Object.hasOwn(configured.environment, 'DSH_PROXY_PASSWORD'), false)
assert.equal(Object.hasOwn(configured.environment, 'DSH_PLATFORM_PASSWORD'), false)
assert.equal(configured.environment.DSH_PROXY_POLYFILL, 'false')
assert.equal(configured.environment.DSH_TELEMETRY_DISABLED, 'false')
assert.equal(configured.environment.DSH_TRUSTED_HOSTS, '192.168.1.10,dsh.example:8443')
assert.deepEqual(configured.group_add, ['dsh-sudo-true'])
console.log('Compose configuration checks passed')