import './index';
import { assert } from 'chai';
import { CalendarInputSk } from './calendar-input-sk';
import { setUpElementUnderTest } from '../../../infra-sk/modules/test_util';

const container = document.createElement('div');
document.body.appendChild(container);

afterEach(() => {
  container.innerHTML = '';
});

describe('calendar-input-sk', () => {
  const newInstance = setUpElementUnderTest<CalendarInputSk>(
    'calendar-input-sk',
  );
  let calendarInputSk: CalendarInputSk;
  beforeEach(() => {
    calendarInputSk = newInstance();
    calendarInputSk.displayDate = new Date(2020, 4, 21);
  });

  describe('input control', () => {
    it('displays the date correctly', () => window.customElements.whenDefined('calendar-input-sk').then(async () => {
      assert.equal(
          calendarInputSk.querySelector<HTMLInputElement>('input')!.value,
          '2020-5-21',
      );
    }));
  });
});
