mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-17 22:05:50 +00:00
77 lines
2.1 KiB
TypeScript
77 lines
2.1 KiB
TypeScript
import { describe, expect, test } from 'bun:test'
|
|
|
|
import { parseBridgePermissionResponse } from '../bridgePermissionCallbacks.js'
|
|
import type { SDKControlResponse } from '../../entrypoints/sdk/controlTypes.js'
|
|
|
|
describe('parseBridgePermissionResponse', () => {
|
|
test('passes through allow responses', () => {
|
|
const message: SDKControlResponse = {
|
|
type: 'control_response',
|
|
response: {
|
|
subtype: 'success',
|
|
request_id: 'req-1',
|
|
response: {
|
|
behavior: 'allow',
|
|
updatedPermissions: [
|
|
{ type: 'setMode', mode: 'acceptEdits', destination: 'session' },
|
|
],
|
|
},
|
|
},
|
|
}
|
|
|
|
expect(parseBridgePermissionResponse(message)).toEqual({
|
|
behavior: 'allow',
|
|
updatedPermissions: [
|
|
{ type: 'setMode', mode: 'acceptEdits', destination: 'session' },
|
|
],
|
|
})
|
|
})
|
|
|
|
test('maps error responses with feedback to deny', () => {
|
|
const message = {
|
|
type: 'control_response',
|
|
response: {
|
|
subtype: 'error',
|
|
request_id: 'req-2',
|
|
error: 'Permission denied by user',
|
|
response: { behavior: 'deny' },
|
|
message: 'Need more detail',
|
|
},
|
|
} as unknown as SDKControlResponse
|
|
|
|
expect(parseBridgePermissionResponse(message)).toEqual({
|
|
behavior: 'deny',
|
|
message: 'Need more detail',
|
|
})
|
|
})
|
|
|
|
test('falls back to error text when deny feedback is absent', () => {
|
|
const message = {
|
|
type: 'control_response',
|
|
response: {
|
|
subtype: 'error',
|
|
request_id: 'req-3',
|
|
error: 'Permission denied by user',
|
|
},
|
|
} as unknown as SDKControlResponse
|
|
|
|
expect(parseBridgePermissionResponse(message)).toEqual({
|
|
behavior: 'deny',
|
|
message: 'Permission denied by user',
|
|
})
|
|
})
|
|
|
|
test('returns null for unrelated control responses', () => {
|
|
const message = {
|
|
type: 'control_response',
|
|
response: {
|
|
subtype: 'error',
|
|
request_id: 'req-4',
|
|
error: '',
|
|
},
|
|
} as unknown as SDKControlResponse
|
|
|
|
expect(parseBridgePermissionResponse(message)).toBeNull()
|
|
})
|
|
})
|