blob: 7c4ddcdf3679748d73ea664c77b767421df2a5b4 [file] [log] [blame]
// Copyright 2023 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {lib} from '../../libdot/index.js';
import {ProfileType, getProfileIds, setProfileIds}
from './terminal_profiles.js';
import {TerminalSettingsProfileItem}
from './terminal_settings_profile_item.js';
describe('terminal_settings_profile_item.js', function() {
beforeEach(async function() {
window.storage = new lib.Storage.Memory();
await setProfileIds(ProfileType.HTERM, ['default', 'red', 'green']);
this.el = /** @type {!TerminalSettingsProfileItem} */ (
document.createElement('terminal-settings-profile-item'));
this.el.profile = 'red';
document.body.appendChild(this.el);
await this.el.updateComplete;
this.button = this.el.shadowRoot.querySelector('mwc-icon-button');
this.dialog = this.el.shadowRoot.querySelector('terminal-dialog');
});
afterEach(function() {
document.body.removeChild(this.el);
delete window.storage;
});
it('deletes-profile-and-dispatches-delete-event', async function() {
const eventFired = new Promise((resolve) => {
this.el.addEventListener('settings-profile-delete', resolve);
});
assert.isFalse(this.dialog.open);
this.button.click();
assert.isTrue(this.dialog.open);
this.dialog.accept();
await eventFired;
assert.deepEqual(
['default', 'green'], await getProfileIds(ProfileType.HTERM));
});
});