import { getIronCalcMock, resetSheetEditorTestState, } from './SheetEditor.testUtils' import { fireEvent, render, screen, waitFor } from '@testing-library/react' import { afterEach, describe, expect, it, vi } from 'vitest' import { SheetEditor } from './SheetEditor' const ironCalcMock = getIronCalcMock() describe('SheetEditor frozen pane viewport', () => { afterEach(() => { resetSheetEditorTestState() }) it('keeps a scrolled frozen-pane viewport stable when clicking a visible cell', async () => { render( , ) const workbookRoot = await screen.findByTestId('ironcalc-workbook') const scroll = await screen.findByTestId('mock-sheet-scroll') expect(ironCalcMock.state.lastModel?.getFrozenRowsCount()).toBe(1) expect(ironCalcMock.state.lastModel?.getFrozenColumnsCount()).toBe(1) scroll.scrollLeft = 700 scroll.scrollTop = 900 fireEvent.pointerDown(workbookRoot, { button: 0, buttons: 1, clientX: 360, clientY: 220, pageX: 360, pageY: 220, }) await waitFor(() => { expect(scroll.scrollLeft).toBe(700) expect(scroll.scrollTop).toBe(900) }) }) })