fix(worker): ensure reconciled boxes before acquire

This commit is contained in:
Gabriel Brown
2026-07-10 17:04:41 -04:00
parent 284f7ea52b
commit 0b5a2c0411
2 changed files with 35 additions and 5 deletions
@@ -83,6 +83,30 @@ describe('box registry', () => {
);
});
test('ensures an adopted box once before returning acquire handles', async () => {
const module = await load();
const docker = await import('../../src/runtime/docker');
vi.mocked(docker.listWorkspaceContainerNames).mockResolvedValueOnce([
'spoon-box-casey',
]);
await module.reconcileExistingBoxes();
const first = await module.acquireUserBox({
username: 'casey',
workdir: '/w',
containerHome: '/home/casey',
});
const second = await module.acquireUserBox({
username: 'casey',
workdir: '/w',
containerHome: '/home/casey',
});
expect(docker.ensureUserContainer).toHaveBeenCalledTimes(1);
expect(first.boxName).toBe('spoon-box-casey');
expect(second.boxName).toBe('spoon-box-casey');
});
test('retries ensure after the first acquire fails', async () => {
const module = await load();
const docker = await import('../../src/runtime/docker');