Add confirmed admin override for provisioning player checks
This commit is contained in:
@@ -463,6 +463,23 @@ describe('native instance provisioning', () => {
|
||||
await advance();
|
||||
expect(nativeInstance(job.name)?.generation).toBe(2);
|
||||
});
|
||||
it('carries confirmed admin override through serialized rebuild preparation', async () => {
|
||||
const job = await queue(); await advance(); await acknowledge(job.deploymentId);
|
||||
const { heartbeat } = await import('../../src/lib/server/hosts/index.js');
|
||||
heartbeat(hostId, { ...inventory(), capabilities: ['instance.safety-override'] });
|
||||
const { queueNativeRebuild } = await import('../../src/lib/server/provisioning/native.js');
|
||||
const rebuild = queueNativeRebuild(job.name, 'test'); if (!rebuild.ok) throw new Error(rebuild.message);
|
||||
remote.players = 2; await advance();
|
||||
expect(await operationFor(rebuild.deploymentId)).toBeNull();
|
||||
const { enableSafetyOverride } = await import('../../src/lib/server/provisioning/safety-override.js');
|
||||
expect(enableSafetyOverride(rebuild.deploymentId, { id: 'admin', username: 'admin' })).toEqual({ ok: true });
|
||||
await advance();
|
||||
expect(await operationFor(rebuild.deploymentId)).toMatchObject({ kind: 'instance.rebuild', generation: 1,
|
||||
payload: { nextGeneration: 2, libraryId, safetyOverride: true } });
|
||||
await acknowledge(rebuild.deploymentId);
|
||||
expect((await detail(rebuild.deploymentId)).state).toBe('done');
|
||||
});
|
||||
|
||||
it('holds a rebuild when players join while its launch files are being prepared', async () => {
|
||||
const job = await queue(); await advance(); await acknowledge(job.deploymentId);
|
||||
const { queueNativeRebuild } = await import('../../src/lib/server/provisioning/native.js');
|
||||
|
||||
Reference in New Issue
Block a user