import { describe, expect, it } from 'vitest';

import { defaultInputClickEventScript, getInputClickEventScript, getVisibleFieldEvents } from './fieldEvent';

describe('getInputClickEventScript', () => {
  it('uses the configured click script', () => {
    expect(getInputClickEventScript({ click: 'custom click script' })).toBe('custom click script');
  });

  it('uses the default script without creating a click configuration', () => {
    const events = { blur: 'blur script', change: 'change script' };

    expect(getInputClickEventScript(events)).toBe(defaultInputClickEventScript);
    expect(events).not.toHaveProperty('click');
  });
});

describe('getVisibleFieldEvents', () => {
  it('excludes click from the generic input event list', () => {
    expect(getVisibleFieldEvents({ blur: 'blur', change: 'change', click: 'click' }, true)).toEqual([
      ['blur', 'blur'],
      ['change', 'change'],
    ]);
  });

  it('keeps click in generic event lists for other components', () => {
    expect(getVisibleFieldEvents({ click: 'click' }, false)).toEqual([['click', 'click']]);
  });
});
