agent-ecosystem/test/renderer/hooks/useViewportCommentRead.test.ts
iliya 46355d87df refactor(session): improve session label formatting and enhance session item display
- Replaced direct access to session.firstMessage with formatSessionLabel for consistent label formatting across components.
- Updated SessionItem, TeamSessionsSection, and KanbanFilterPopover to utilize the new formatting function.
- Enhanced display logic in SessionItem to differentiate between regular and team sessions, improving user experience.
- Added new icons for team sessions and adjusted metadata display for better clarity.
2026-03-29 01:16:04 +02:00

77 lines
2.1 KiB
TypeScript

import { describe, expect, it, vi } from 'vitest';
import { getVisibleCommentIdsFallback } from '../../../src/renderer/hooks/useViewportCommentRead';
function makeRect({
top,
bottom,
left = 0,
right = 100,
}: {
top: number;
bottom: number;
left?: number;
right?: number;
}): DOMRect {
return {
x: left,
y: top,
top,
bottom,
left,
right,
width: right - left,
height: bottom - top,
toJSON: () => ({}),
} as DOMRect;
}
describe('getVisibleCommentIdsFallback', () => {
it('returns comment IDs that are visibly inside the scroll container', () => {
const container = document.createElement('div');
const visible = document.createElement('div');
const hidden = document.createElement('div');
vi.spyOn(container, 'getBoundingClientRect').mockReturnValue(
makeRect({ top: 100, bottom: 300 })
);
vi.spyOn(visible, 'getBoundingClientRect').mockReturnValue(makeRect({ top: 120, bottom: 180 }));
vi.spyOn(hidden, 'getBoundingClientRect').mockReturnValue(makeRect({ top: 320, bottom: 380 }));
const result = getVisibleCommentIdsFallback(
container,
new Map([
['visible-comment', visible],
['hidden-comment', hidden],
])
);
expect(result).toEqual(['visible-comment']);
});
it('requires at least 10% of the comment height to be visible', () => {
const container = document.createElement('div');
const barelyVisible = document.createElement('div');
const enoughVisible = document.createElement('div');
vi.spyOn(container, 'getBoundingClientRect').mockReturnValue(
makeRect({ top: 100, bottom: 300 })
);
vi.spyOn(barelyVisible, 'getBoundingClientRect').mockReturnValue(
makeRect({ top: 295, bottom: 405 })
);
vi.spyOn(enoughVisible, 'getBoundingClientRect').mockReturnValue(
makeRect({ top: 290, bottom: 390 })
);
const result = getVisibleCommentIdsFallback(
container,
new Map([
['barely-visible', barelyVisible],
['enough-visible', enoughVisible],
])
);
expect(result).toEqual(['enough-visible']);
});
});