Files
orca/src/shared/remote-runtime-shared-control-subscription-close.test.ts
T
Brennan Benson e467b3ff7b fix(remote): stabilize shared control and terminal parking (#11656)
* fix(remote): stabilize shared control and terminal parking

* fix(remote): harden parking review edge cases

* fix(terminal): restore parked local floating buffer

* fix(ci): drop superseded paired parking evidence

* fix(terminal): preserve floating park watchers

* fix(ci): include web client in paired e2e artifact

* fix(ci): reuse renderer build for paired e2e
2026-07-31 00:22:53 -07:00

60 lines
2.1 KiB
TypeScript

import { describe, expect, it, vi } from 'vitest'
import { SharedControlRetiredRequestIds } from './remote-runtime-shared-control-retired-request-ids'
import {
closeSharedControlConnectionSubscription,
sendRetiredSharedControlCleanupRequest
} from './remote-runtime-shared-control-subscription-close'
import { createSharedControlSubscription } from './remote-runtime-shared-control-subscriptions'
import type { SharedControlLogicalSubscription } from './remote-runtime-shared-control-types'
describe('shared-control subscription retirement', () => {
it('retires a closed subscription and its cleanup request', () => {
const subscriptions = new Map<string, SharedControlLogicalSubscription<unknown>>()
const subscription = createSharedControlSubscription({
requestId: 'request-1',
method: 'runtime.clientEvents.subscribe',
params: null,
retainedParamsBytes: 0,
callbacks: { onResponse: vi.fn(), onError: vi.fn() }
})
subscription.sent = true
subscription.remoteSubscriptionId = 'subscription-1'
subscriptions.set(subscription.requestId, subscription)
const retiredRequestIds = new SharedControlRetiredRequestIds()
let cleanupRequestId = ''
closeSharedControlConnectionSubscription({
subscriptions,
retiredRequestIds,
requestId: subscription.requestId,
deviceToken: 'device-token',
send: (payload) => {
cleanupRequestId = (payload as { id: string }).id
return true
}
})
expect(subscriptions.size).toBe(0)
expect(retiredRequestIds.has(subscription.requestId)).toBe(true)
expect(retiredRequestIds.has(cleanupRequestId)).toBe(true)
})
it('does not retire an unsent cleanup request', () => {
const retiredRequestIds = new SharedControlRetiredRequestIds()
let cleanupRequestId = ''
sendRetiredSharedControlCleanupRequest({
retiredRequestIds,
deviceToken: 'device-token',
method: 'runtime.clientEvents.unsubscribe',
params: null,
send: (payload) => {
cleanupRequestId = (payload as { id: string }).id
return false
}
})
expect(retiredRequestIds.has(cleanupRequestId)).toBe(false)
})
})