fixed-react-data-grid-custom
Version:
Excel-like grid component built with React, with editors, keyboard navigation, copy & paste, and the like
49 lines (43 loc) • 1.88 kB
JavaScript
import { createColumns } from '../../__tests__/utils';
import { getColumnScrollPosition } from '../canvasUtils';
describe('canvasUtils', () => {
describe('When canvas is scrolled left', () => {
it('should calculate the scroll position for the selected column', () => {
const columns = createColumns(10);
const scrollPosition = getColumnScrollPosition(columns, 4, 500, 100);
expect(scrollPosition).toBe(-100);
});
describe('When columns are frozen', () => {
it('should calculate the scroll position for the selected column', () => {
const columns = createColumns(10);
columns[0].frozen = true;
columns[1].frozen = true;
const scrollPosition = getColumnScrollPosition(columns, 4, 500, 100);
expect(scrollPosition).toBe(-300);
});
});
});
describe('When canvas is scrolled right', () => {
it('should calculate the scroll position for the selected column', () => {
const columns = createColumns(10);
const scrollPosition = getColumnScrollPosition(columns, 7, 500, 100);
expect(scrollPosition).toBe(200);
});
describe('When columns are frozen', () => {
it('should calculate the scroll position for the selected column', () => {
const columns = createColumns(10);
columns[0].frozen = true;
columns[1].frozen = true;
const scrollPosition = getColumnScrollPosition(columns, 7, 500, 100);
expect(scrollPosition).toBe(200);
});
});
it('should not calculate the scroll position for the selected column when client width is greater than the scroll width', () => {
const columns = createColumns(10);
columns[0].frozen = true;
columns[1].frozen = true;
const scrollPosition = getColumnScrollPosition(columns, 7, 500, 400);
expect(scrollPosition).toBeUndefined();
});
});
});