53 lines
1.5 KiB
TypeScript
53 lines
1.5 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',
|
|
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',
|
|
type: 'write-update',
|
|
replaceAll: false,
|
|
isError: false,
|
|
},
|
|
])
|
|
).toBe(false);
|
|
});
|
|
});
|