fix(worker): ensure reconciled boxes before acquire
This commit is contained in:
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user