import { newE2EPage } from "@stencil/core/testing";
describe('ifx-multiselect', () => {
it('should render without errors', async () => {
const page = await newE2EPage();
await page.setContent('');
const element = await page.find('ifx-multiselect');
expect(element).toHaveClass('hydrated');
});
it('should accept properties and reflect them', async () => {
const page = await newE2EPage();
await page.setContent('');
const component = await page.find('ifx-multiselect');
const label = await component.getProperty('label');
expect(label).toBe('Test label');
});
it('should emit ifxMultiselectIsOpen when dropdown is toggled', async () => {
const page = await newE2EPage();
await page.setContent('');
const select = await page.find('ifx-multiselect');
const openEvent = await select.spyOnEvent('ifxMultiselectIsOpen');
const multiselectWrapper = await page.find('ifx-multiselect >>> .ifx-multiselect-wrapper ');
await multiselectWrapper.click();
expect(openEvent).toHaveReceivedEvent();
});
it('should toggle dropdown when clicked', async () => {
const page = await newE2EPage();
await page.setContent('');
const component = await page.find('ifx-multiselect');
await component.click();
let dropdown = await page.find('ifx-multiselect >>> .ifx-multiselect-dropdown-menu');
expect(dropdown).not.toBeNull();
await component.click();
dropdown = await page.find('ifx-multiselect >>> .ifx-multiselect-dropdown-menu');
expect(dropdown).toBeNull();
});
it('should close dropdown when clicked outside', async () => {
const page = await newE2EPage();
await page.setContent(`
`);
const component = await page.find('ifx-multiselect');
await component.click();
let dropdown = await page.find('ifx-multiselect >>> .ifx-multiselect-dropdown-menu');
expect(dropdown).not.toBeNull();
const outsideArea = await page.find('div');
await outsideArea.click();
dropdown = await page.find('ifx-multiselect >>> .ifx-multiselect-dropdown-menu');
expect(dropdown).toBeNull();
});
// Add more tests for keyboard navigation, clearing selections, error message rendering, dropdown positioning, etc.
});
//# sourceMappingURL=multiselect.e2e.js.map