diff --git a/packages/overlays/src/utils/typedef.js b/packages/overlays/src/utils/typedef.js index 1dfd14499..b9072bf29 100644 --- a/packages/overlays/src/utils/typedef.js +++ b/packages/overlays/src/utils/typedef.js @@ -17,7 +17,7 @@ * @property {HTMLElement} contentNode * @property {boolean} [isModal=false] - sets aria-modal and/or aria-hidden="true" on siblings * @property {boolean} [isGlobal=false] - determines the connection point in DOM (body vs next - * to invoker). This is what other libraries often refer to as 'portal'. TODO: rename to renderToBody? + * to invoker). This is what other libraries often refer to as 'portal'. * @property {boolean} [isTooltip=false] - has a totally different interaction- and accessibility pattern from all other overlays, so needed for internals. * @property {boolean} [handlesUserInteraction] - sets toggle on click, or hover when `isTooltip` * @property {boolean} [handlesAccessibility] - diff --git a/packages/select-rich/src/LionSelectRich.js b/packages/select-rich/src/LionSelectRich.js index 36eac1b2b..c72e5a886 100644 --- a/packages/select-rich/src/LionSelectRich.js +++ b/packages/select-rich/src/LionSelectRich.js @@ -148,7 +148,6 @@ export class LionSelectRich extends ScopedElementsMixin( this.requestUpdate('modelValue'); } - // TODO: quick and dirty fix. Should be possible to do it nicer on a higher layer get serializedValue() { return this.modelValue; } @@ -260,7 +259,6 @@ export class LionSelectRich extends ScopedElementsMixin( get _inputNode() { // In FormControl, we get direct child [slot="input"]. This doesn't work, because the overlay // system wraps it in [slot="_overlay-shadow-outlet"] - // TODO: find a way to solve this by putting the wrapping part in shadow dom... return this.querySelector('[slot="input"]'); } diff --git a/packages/select-rich/test/lion-select-rich-interaction.test.js b/packages/select-rich/test/lion-select-rich-interaction.test.js index 9c3ab4687..ff01e06bd 100644 --- a/packages/select-rich/test/lion-select-rich-interaction.test.js +++ b/packages/select-rich/test/lion-select-rich-interaction.test.js @@ -401,29 +401,6 @@ describe('lion-select-rich interactions', () => { }); }); - // TODO: nice to have - describe.skip('Read only', () => { - it('can be focused if readonly', async () => { - const el = await fixture(html` - - `); - expect(el.tabIndex).to.equal('-1'); - }); - - it('cannot be navigated with keyboard if readonly', async () => { - const el = await fixture(html` - - - Item 1 - Item 2 - - - `); - el._listboxNode.dispatchEvent(new KeyboardEvent('keyup', { key: 'ArrowDown' })); - expect(el.choiceValue).to.equal(10); - }); - }); - describe('Programmatic interaction', () => { it('can set active state', async () => { const el = await fixture(html` diff --git a/packages/validate/src/ValidateMixin.js b/packages/validate/src/ValidateMixin.js index 6185e0718..dfb91fe08 100644 --- a/packages/validate/src/ValidateMixin.js +++ b/packages/validate/src/ValidateMixin.js @@ -484,10 +484,6 @@ export const ValidateMixin = dedupeMixin( if (typeof this._isEmpty === 'function') { return this._isEmpty(v); } - // // TODO: move to compat layer. Be sure to keep this, because people use this a lot - // if (typeof this.__isRequired === 'function') { - // return !this.__isRequired(v); - // } return ( this.modelValue === null || typeof this.modelValue === 'undefined' || diff --git a/packages/validate/test-suites/ValidateMixin.suite.js b/packages/validate/test-suites/ValidateMixin.suite.js index d66c29ef6..5ff8bb9de 100644 --- a/packages/validate/test-suites/ValidateMixin.suite.js +++ b/packages/validate/test-suites/ValidateMixin.suite.js @@ -775,28 +775,6 @@ export function runValidateMixinSuite(customConfig) { }); describe('State storage and reflection', () => { - class ContainsLowercaseA extends Validator { - constructor(...args) { - super(...args); - this.execute = modelValue => !modelValue.includes('a'); - } - - static get validatorName() { - return 'ContainsLowercaseA'; - } - } - - class ContainsLowercaseB extends Validator { - constructor(...args) { - super(...args); - this.execute = modelValue => !modelValue.includes('b'); - } - - static get validatorName() { - return 'containsLowercaseB'; - } - } - it('stores validity of individual Validators in ".validationStates.error[validator.validatorName]"', async () => { const el = await fixture(html` <${tag} @@ -890,35 +868,6 @@ export function runValidateMixinSuite(customConfig) { await el.updateComplete; expect(spy).to.have.callCount(2); }); - - // TODO: what is it used for? - it.skip('fires "error-states-changed" event when "internal" state changes', async () => { - const el = await fixture(html` - <${tag} - .validators=${[new MinLength(3), new ContainsLowercaseA(), new ContainsLowercaseB()]} - >${lightDom} - - `); - - const cbError = sinon.spy(); - el.addEventListener('error-states-changed', cbError); - - el.modelValue = 'a'; - await el.updateComplete; - expect(cbError.callCount).to.equal(1); - - el.modelValue = 'aa'; - await el.updateComplete; - expect(cbError.callCount).to.equal(1); - - el.modelValue = 'aaa'; - await el.updateComplete; - expect(cbError.callCount).to.equal(2); - - el.modelValue = 'aba'; - await el.updateComplete; - expect(cbError.callCount).to.equal(3); - }); }); });