import {
  createTestkit,
  navigateToStory,
} from '../../../../test/utils/sled-helpers';
import { eventually } from '@unidriver/core';
import { TableUniDriver, tableUniDriverFactory } from '../../Table.uni.driver';

describe('Table', () => {
  it('loads more items until scrollable', async () => {
    const iframe = await navigateToStory('table--initial-items-not-scrollable');

    const { testkit } = await createTestkit<TableUniDriver>({
      page: iframe,
      driver: tableUniDriverFactory,
      dataHook: 'table',
    });

    await eventually(async () => {
      expect(await testkit.getRowsCount()).toBe(8);
    }, 5000);

    // make sure we're not scrolling infinitely
    await new Promise((resolve, reject) =>
      eventually(async () => {
        expect(await testkit.getRowsCount()).toBeGreaterThan(8);
      }, 2000)
        .then(reject)
        .catch(resolve),
    );
  });
});
