2021-06-15 13:36:45 +00:00
|
|
|
import { expect, fixture, html, waitUntil } from '@open-wc/testing';
|
|
|
|
import sinon from 'sinon';
|
|
|
|
|
|
|
|
import '../../../dist/shoelace.js';
|
|
|
|
import type SlSelect from './select';
|
|
|
|
|
|
|
|
describe('<sl-select>', () => {
|
|
|
|
it('should emit sl-change when the value changes', async () => {
|
2021-08-10 21:11:07 +00:00
|
|
|
const el = await fixture<SlSelect>(html`
|
2021-06-15 13:36:45 +00:00
|
|
|
<sl-select>
|
|
|
|
<sl-menu-item value="option-1">Option 1</sl-menu-item>
|
|
|
|
<sl-menu-item value="option-2">Option 2</sl-menu-item>
|
|
|
|
<sl-menu-item value="option-3">Option 3</sl-menu-item>
|
|
|
|
</sl-select>
|
2021-08-10 21:11:07 +00:00
|
|
|
`);
|
2021-06-15 13:36:45 +00:00
|
|
|
const changeHandler = sinon.spy();
|
|
|
|
|
|
|
|
el.addEventListener('sl-change', changeHandler);
|
|
|
|
el.value = 'option-2';
|
|
|
|
await waitUntil(() => changeHandler.calledOnce);
|
|
|
|
|
|
|
|
expect(changeHandler).to.have.been.calledOnce;
|
|
|
|
});
|
|
|
|
});
|