import './index';
import { assert } from 'chai';
import { $$ } from '../../../infra-sk/modules/dom';
import { AutoRefreshSk } from './auto-refresh-sk';

import { eventPromise, setUpElementUnderTest } from '../../../infra-sk/modules/test_util';

describe('auto-refresh-sk', () => {
  const newInstance = setUpElementUnderTest<AutoRefreshSk>('auto-refresh-sk');

  let element: AutoRefreshSk;
  beforeEach(() => {
    element = newInstance((el: AutoRefreshSk) => {
      el.refreshing = false;
    });
  });

  describe('clicking on icon', () => {
    it('toggles refresh', () => {
      const toggle = $$<HTMLSpanElement>('#refresh', element)!;
      toggle.click();
      // eslint-disable-next-line dot-notation
      assert.notEqual(element['timeout'], 0);
      assert.isTrue(element.refreshing);
      toggle.click();
      assert.isFalse(element.refreshing);
    });
  });

  it('should trigger a custom event', async () => {
    const myEvent = eventPromise('refresh-page');
    const toggle = $$<HTMLSpanElement>('#refresh', element)!;
    toggle.click();
    await myEvent;
  });
});
