| // Copyright 2020 The Chromium Authors |
| // 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 {MrIssueHotlistsDialog} from './mr-issue-hotlists-dialog.js'; |
| |
| let element; |
| const EXAMPLE_USER_HOTLISTS = [ |
| {name: 'Hotlist-1'}, |
| {name: 'Hotlist-2'}, |
| {name: 'ac-apple-1'}, |
| {name: 'ac-frita-1'}, |
| ]; |
| |
| describe('mr-issue-hotlists-dialog', () => { |
| beforeEach(async () => { |
| element = document.createElement('mr-issue-hotlists-dialog'); |
| document.body.appendChild(element); |
| |
| await element.updateComplete; |
| }); |
| |
| afterEach(() => { |
| document.body.removeChild(element); |
| }); |
| |
| it('initializes', () => { |
| assert.instanceOf(element, MrIssueHotlistsDialog); |
| assert.include(element.shadowRoot.innerHTML, 'Dialog elements below'); |
| }); |
| |
| it('filters hotlists', async () => { |
| element.userHotlists = EXAMPLE_USER_HOTLISTS; |
| element.open(); |
| await element.updateComplete; |
| |
| const initialHotlists = element.shadowRoot.querySelectorAll('.hotlist'); |
| assert.equal(initialHotlists.length, 4); |
| const filterInput = element.shadowRoot.querySelector('#filter'); |
| filterInput.value = 'list'; |
| element.filterHotlists(); |
| await element.updateComplete; |
| let visibleHotlists = |
| element.shadowRoot.querySelectorAll('.hotlist'); |
| assert.equal(visibleHotlists.length, 2); |
| |
| filterInput.value = '2'; |
| element.filterHotlists(); |
| await element.updateComplete; |
| visibleHotlists = |
| element.shadowRoot.querySelectorAll('.hotlist'); |
| assert.equal(visibleHotlists.length, 1); |
| }); |
| |
| it('resets filter on open', async () => { |
| element.userHotlists = EXAMPLE_USER_HOTLISTS; |
| element.open(); |
| await element.updateComplete; |
| |
| const filterInput = element.shadowRoot.querySelector('#filter'); |
| filterInput.value = 'ac'; |
| element.filterHotlists(); |
| await element.updateComplete; |
| let visibleHotlists = |
| element.shadowRoot.querySelectorAll('.hotlist'); |
| assert.equal(visibleHotlists.length, 2); |
| |
| element.close(); |
| element.open(); |
| await element.updateComplete; |
| |
| assert.equal(filterInput.value, ''); |
| visibleHotlists = |
| element.shadowRoot.querySelectorAll('.hotlist'); |
| assert.equal(visibleHotlists.length, 4); |
| }); |
| }); |