agent-ecosystem/test/renderer/components/reviewDiffSafety.test.ts
iliya e431cfd02c fix(team): deduplicate permission_request processing across all entry paths
Root cause: handleTeammatePermissionRequest was called from 3 paths
(early inbox scan, Category 4 relay scan, stdout/native) but only
the early scan checked processedPermissionRequestIds, causing
duplicate ToolApprovalRequests and extra permission_responses.

Fix:
- Move processedPermissionRequestIds check INTO handleTeammatePermissionRequest
  so ALL callers are protected by the same dedup gate
- Remove duplicate Category 4 scan that re-processed inbox messages
  (early scan already covers all messages including read=true)
- Category 4 now only builds a filter Set to exclude permission_request
  from relay to lead
2026-03-28 20:32:42 +02:00

55 lines
1.6 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import {
shouldRenderCodeMirrorReviewDiff,
shouldRenderSnippetReviewPreview,
} from '@renderer/components/team/review/reviewDiffSafety';
describe('reviewDiffSafety', () => {
it('allows regular CodeMirror review diffs', () => {
expect(shouldRenderCodeMirrorReviewDiff('line 1\nline 2', 'line 1\nline 3')).toBe(true);
});
it('blocks oversized CodeMirror review diffs by line-product', () => {
const original = Array.from({ length: 1200 }, (_, i) => `old ${i}`).join('\n');
const modified = Array.from({ length: 1200 }, (_, i) => `new ${i}`).join('\n');
expect(shouldRenderCodeMirrorReviewDiff(original, modified)).toBe(false);
});
it('allows small snippet previews', () => {
expect(
shouldRenderSnippetReviewPreview([
{
filePath: '/tmp/a.ts',
oldString: 'const a = 1;\n',
newString: 'const a = 2;\n',
timestamp: '2026-03-28T10:00:00.000Z',
toolUseId: 'tool-1',
toolName: 'Edit',
type: 'edit',
replaceAll: false,
isError: false,
},
])
).toBe(true);
});
it('blocks oversized snippet previews', () => {
expect(
shouldRenderSnippetReviewPreview([
{
filePath: '/tmp/big.ts',
oldString: '',
newString: 'a'.repeat(600 * 1024),
timestamp: '2026-03-28T10:00:00.000Z',
toolUseId: 'tool-2',
toolName: 'Write',
type: 'write-update',
replaceAll: false,
isError: false,
},
])
).toBe(false);
});
});