This commit is contained in:
@@ -222,6 +222,31 @@ test('shutdown still closes the harness when recovery or voice cleanup fails', a
|
||||
assert.equal(closed, true);
|
||||
});
|
||||
|
||||
test('Grant desktop revokes any previous portal session before asking GNOME again', async () => {
|
||||
const daemon = new JarvisDaemon();
|
||||
const order = [];
|
||||
daemon.input = {
|
||||
revoke: () => order.push('revoke'),
|
||||
grant: (opts) => { order.push(['grant', opts]); return Promise.resolve({ backend: 'portal-ei' }); },
|
||||
};
|
||||
daemon.computer = {
|
||||
revoke: () => order.push('computer-revoke'),
|
||||
grant: (opts) => { order.push(['computer-grant', opts]); return { session_id: 's' }; },
|
||||
setBackend: (backend) => order.push(['backend', backend]),
|
||||
status: () => ({ active: true }),
|
||||
expiresAt: Date.now() + 180000,
|
||||
};
|
||||
try {
|
||||
daemon.computerGrant(false);
|
||||
await Promise.resolve();
|
||||
assert.equal(order[0], 'revoke');
|
||||
assert.equal(order[1], 'computer-revoke');
|
||||
assert.deepEqual(order[2], ['computer-grant', { persist: false }]);
|
||||
assert.deepEqual(order[3], ['grant', { persist: false, mode: daemon.settings.computerMode }]);
|
||||
assert.deepEqual(order[4], ['backend', 'portal-ei']);
|
||||
} finally { await daemon.close(); }
|
||||
});
|
||||
|
||||
test('cancel suppresses a late reply and revokes portal input', async () => {
|
||||
const daemon = new JarvisDaemon(); let resolve; let revoked = false;
|
||||
daemon.input = { revoke: () => { revoked = true; } };
|
||||
|
||||
Reference in New Issue
Block a user