import fs from 'node:fs'; import path from 'node:path'; import { describe, expect, it } from 'vitest'; describe('VNC container entrypoint', () => { it('starts x11vnc with supported arguments and verifies its port before noVNC', () => { const script = fs.readFileSync(path.resolve('docker/entrypoint.sh'), 'utf8'); expect(script).not.toContain('-nopw_warn'); expect(script).toContain('kill -0 "${X11VNC_PID}"'); expect(script).toContain('/dev/tcp/127.0.0.1/${VNC_PORT}'); expect(script.indexOf('VNC server is ready')).toBeLessThan( script.indexOf('starting noVNC'), ); }); it('removes only stale Chromium singleton artifacts before launching the bot', () => { const script = fs.readFileSync(path.resolve('docker/entrypoint.sh'), 'utf8'); expect(script).toContain('"${BROWSER_SESSION_DIR}/SingletonLock"'); expect(script).toContain('"${BROWSER_SESSION_DIR}/SingletonSocket"'); expect(script).toContain('"${BROWSER_SESSION_DIR}/SingletonCookie"'); expect(script.indexOf('SingletonLock')).toBeLessThan(script.indexOf('launching bot')); }); });