import {
  createTestkit,
  navigateToStory,
} from '../../../../test/utils/sled-helpers';
import { eventually } from '@unidriver/core';
import {
  SelectorListUniDriver,
  selectorListUniDriverFactory,
} from '../../SelectorList.uni.driver';

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

    const { testkit } = await createTestkit<SelectorListUniDriver>({
      page: iframe,
      driver: selectorListUniDriverFactory,
      dataHook: 'selector-list',
    });

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

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