import { suite, test, expect } from 'vitest'; import { show, hide, toggle, toggleExpandIcon, isSelectElement, isTextInputElement, isCheckboxOrRadioInputElement } from './utils'; suite('@utils', () => { test('show', () => { const input = document.createElement('input'); input.classList.add('hidden'); show(input); expect(input.classList.contains('hidden')).toBeFalsy(); }); test('hide', () => { const input = document.createElement('input'); hide(input); expect(input.classList.contains('hidden')).toBeTruthy(); }); test('toggle', () => { const input = document.createElement('input'); toggle(input); expect(input.classList.contains('hidden')).toBeTruthy(); toggle(input); expect(input.classList.contains('hidden')).toBeFalsy(); }); test('toggleExpandIcon', () => { const icon = document.createElement('icon'); icon.classList.add('fr-icon-add-line'); toggleExpandIcon(icon); expect(icon.classList.contains('fr-icon-subtract-line')).toBeTruthy(); expect(icon.classList.contains('fr-icon-add-line')).toBeFalsy(); toggleExpandIcon(icon); expect(icon.classList.contains('fr-icon-add-line')).toBeTruthy(); expect(icon.classList.contains('fr-icon-subtract-line')).toBeFalsy(); }); test('isSelectElement', () => { const select = document.createElement('select'); const input = document.createElement('input'); const textarea = document.createElement('textarea'); expect(isSelectElement(select)).toBeTruthy(); expect(isSelectElement(input)).toBeFalsy(); expect(isSelectElement(textarea)).toBeFalsy(); input.type = 'text'; expect(isSelectElement(input)).toBeFalsy(); input.type = 'email'; expect(isSelectElement(input)).toBeFalsy(); input.type = 'checkbox'; expect(isSelectElement(input)).toBeFalsy(); input.type = 'radio'; expect(isSelectElement(input)).toBeFalsy(); input.type = 'file'; expect(isSelectElement(input)).toBeFalsy(); }); test('isTextInputElement', () => { const select = document.createElement('select'); const input = document.createElement('input'); const textarea = document.createElement('textarea'); expect(isTextInputElement(select)).toBeFalsy(); expect(isTextInputElement(input)).toBeTruthy(); expect(isTextInputElement(textarea)).toBeTruthy(); input.type = 'text'; expect(isTextInputElement(input)).toBeTruthy(); input.type = 'email'; expect(isTextInputElement(input)).toBeTruthy(); input.type = 'checkbox'; expect(isTextInputElement(input)).toBeFalsy(); input.type = 'radio'; expect(isTextInputElement(input)).toBeFalsy(); input.type = 'file'; expect(isTextInputElement(input)).toBeFalsy(); }); test('isCheckboxOrRadioInputElement', () => { const select = document.createElement('select'); const input = document.createElement('input'); const textarea = document.createElement('textarea'); expect(isCheckboxOrRadioInputElement(select)).toBeFalsy(); expect(isCheckboxOrRadioInputElement(input)).toBeFalsy(); expect(isCheckboxOrRadioInputElement(textarea)).toBeFalsy(); input.type = 'text'; expect(isCheckboxOrRadioInputElement(input)).toBeFalsy(); input.type = 'email'; expect(isCheckboxOrRadioInputElement(input)).toBeFalsy(); input.type = 'checkbox'; expect(isCheckboxOrRadioInputElement(input)).toBeTruthy(); input.type = 'radio'; expect(isCheckboxOrRadioInputElement(input)).toBeTruthy(); input.type = 'file'; expect(isCheckboxOrRadioInputElement(input)).toBeFalsy(); }); });