| // Copyright 2019 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import {assert} from 'chai'; |
| import sinon from 'sinon'; |
| import {ChopsChip} from './chops-chip.js'; |
| |
| let element; |
| |
| describe('chops-chip', () => { |
| beforeEach(() => { |
| element = document.createElement('chops-chip'); |
| document.body.appendChild(element); |
| }); |
| |
| afterEach(() => { |
| document.body.removeChild(element); |
| }); |
| |
| it('initializes', () => { |
| assert.instanceOf(element, ChopsChip); |
| }); |
| |
| it('icon is visible when defined', async () => { |
| await element.updateComplete; |
| assert.isNull(element.shadowRoot.querySelector('button')); |
| |
| element.buttonIcon = 'close'; |
| |
| await element.updateComplete; |
| |
| assert.isNotNull(element.shadowRoot.querySelector('button')); |
| }); |
| |
| it('clicking icon fires event', async () => { |
| const onClickStub = sinon.stub(); |
| |
| element.buttonIcon = 'close'; |
| |
| await element.updateComplete; |
| |
| element.addEventListener('click-button', onClickStub); |
| |
| assert.isFalse(onClickStub.calledOnce); |
| |
| const icon = element.shadowRoot.querySelector('button'); |
| icon.click(); |
| |
| assert.isTrue(onClickStub.calledOnce); |
| }); |
| }); |