blob: 0cc991733df34fd2ba3275bd237a8d2ace316cfc [file] [log] [blame]
/**
* @license
* Copyright 2018 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import '../../../test/common-test-setup-karma';
import './gr-labeled-autocomplete';
import {GrLabeledAutocomplete} from './gr-labeled-autocomplete';
import {assertIsDefined} from '../../../utils/common-util';
const basicFixture = fixtureFromElement('gr-labeled-autocomplete');
suite('gr-labeled-autocomplete tests', () => {
let element: GrLabeledAutocomplete;
setup(async () => {
element = basicFixture.instantiate();
await element.updateComplete;
});
test('tapping trigger focuses autocomplete', () => {
const e = {stopPropagation: () => undefined};
const stopPropagationStub = sinon.stub(e, 'stopPropagation');
assertIsDefined(element.autocomplete);
const autocompleteStub = sinon.stub(element.autocomplete, 'focus');
element._handleTriggerClick(e as Event);
assert.isTrue(stopPropagationStub.calledOnce);
assert.isTrue(autocompleteStub.calledOnce);
});
test('setText', () => {
assertIsDefined(element.autocomplete);
const setTextStub = sinon.stub(element.autocomplete, 'setText');
element.setText('foo-bar');
assert.isTrue(setTextStub.calledWith('foo-bar'));
});
test('shadowDom', async () => {
element.label = 'Some label';
await element.updateComplete;
expect(element).shadowDom.to.equal(/* HTML */ `
<div id="container">
<div id="header">Some label</div>
<div id="body">
<gr-autocomplete
id="autocomplete"
threshold="0"
borderless=""
></gr-autocomplete>
<div id="trigger">▼</div>
</div>
</div>
`);
});
});