Files
ccs/tests/unit/docker/docker-assets-bundled.test.ts
T

57 lines
2.1 KiB
TypeScript

import { existsSync, readFileSync } from 'fs';
import { describe, expect, it } from 'bun:test';
import { getDockerAssetPaths } from '../../../src/docker/docker-assets';
describe('docker bundled assets', () => {
const assets = getDockerAssetPaths();
it('resolves all required asset paths', () => {
expect(assets.composeFile).toContain('docker-compose.integrated.yml');
expect(assets.dockerfile).toContain('Dockerfile.integrated');
expect(assets.supervisordConfig).toContain('supervisord.conf');
expect(assets.entrypoint).toContain('entrypoint-integrated.sh');
});
it('all bundled assets exist on disk', () => {
expect(existsSync(assets.composeFile)).toBe(true);
expect(existsSync(assets.dockerfile)).toBe(true);
expect(existsSync(assets.supervisordConfig)).toBe(true);
expect(existsSync(assets.entrypoint)).toBe(true);
});
it('binds integrated service ports to loopback by default', () => {
const compose = readFileSync(assets.composeFile, 'utf8');
expect(compose).toContain(
'"${CCS_DOCKER_BIND_HOST:-127.0.0.1}:${CCS_DASHBOARD_PORT:-3000}:3000"'
);
expect(compose).toContain(
'"${CCS_DOCKER_BIND_HOST:-127.0.0.1}:${CCS_CLIPROXY_PORT:-8317}:8317"'
);
expect(compose).not.toContain('"${CCS_DASHBOARD_PORT:-3000}:3000"');
expect(compose).not.toContain('"${CCS_CLIPROXY_PORT:-8317}:8317"');
});
it('passes Docker key rotation controls into the integrated container', () => {
const compose = readFileSync(assets.composeFile, 'utf8');
expect(compose).toContain(
'CCS_DOCKER_LEGACY_KEY_GRACE_DAYS: "${CCS_DOCKER_LEGACY_KEY_GRACE_DAYS:-}"'
);
expect(compose).toContain(
'CCS_DOCKER_RESTORE_LEGACY_API_KEY: "${CCS_DOCKER_RESTORE_LEGACY_API_KEY:-}"'
);
});
it('passes Docker key rotation controls into the public compose file', () => {
const compose = readFileSync('docker/compose.yaml', 'utf8');
expect(compose).toContain(
'CCS_DOCKER_LEGACY_KEY_GRACE_DAYS: "${CCS_DOCKER_LEGACY_KEY_GRACE_DAYS:-}"'
);
expect(compose).toContain(
'CCS_DOCKER_RESTORE_LEGACY_API_KEY: "${CCS_DOCKER_RESTORE_LEGACY_API_KEY:-}"'
);
});
});