generated from Seekra/repository-template
validate dropdown closes on click outside the component
This commit is contained in:
@@ -86,4 +86,29 @@ test('renders correctly with initial state closed', () => {
|
|||||||
expect(document.documentElement.lang).toBe(code);
|
expect(document.documentElement.lang).toBe(code);
|
||||||
expect(document.documentElement.dir).toBe(expectedDir);
|
expect(document.documentElement.dir).toBe(expectedDir);
|
||||||
expect(wrapper.find('.language-dropdown').exists()).toBe(false);
|
expect(wrapper.find('.language-dropdown').exists()).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('closes the dropdown when clicking outside the component', async () => {
|
||||||
|
const wrapper = mount(LanguageSwitchButton, {
|
||||||
|
attachTo: document.body
|
||||||
|
});
|
||||||
|
|
||||||
|
await wrapper.find('.language-button').trigger('click');
|
||||||
|
expect(wrapper.find('.language-dropdown').exists()).toBe(true);
|
||||||
|
|
||||||
|
await new Promise(resolve => setTimeout(resolve, 0));
|
||||||
|
|
||||||
|
const externalDiv = document.createElement('div');
|
||||||
|
document.body.appendChild(externalDiv);
|
||||||
|
|
||||||
|
const clickEvent = new MouseEvent('click', { bubbles: true });
|
||||||
|
externalDiv.dispatchEvent(clickEvent);
|
||||||
|
|
||||||
|
await wrapper.vm.$nextTick();
|
||||||
|
|
||||||
|
expect(wrapper.find('.language-dropdown').exists()).toBe(false);
|
||||||
|
|
||||||
|
wrapper.unmount();
|
||||||
|
externalDiv.remove();
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user