diff --git a/packages/lit-analyzer/src/test/rules/no-missing-element-type-definition.ts b/packages/lit-analyzer/src/test/rules/no-missing-element-type-definition.ts index c310bc37..93125503 100644 --- a/packages/lit-analyzer/src/test/rules/no-missing-element-type-definition.ts +++ b/packages/lit-analyzer/src/test/rules/no-missing-element-type-definition.ts @@ -16,7 +16,7 @@ tsTest("'no-missing-element-type-definition' reports diagnostic when element is hasDiagnostic(t, diagnostics, "no-missing-element-type-definition"); }); -tsTest("'no-missing-element-type-definition' reports no diagnostic when element is not in HTMLElementTagNameMap", t => { +tsTest("'no-missing-element-type-definition' reports no diagnostic when element is in HTMLElementTagNameMap", t => { const { diagnostics } = getDiagnostics( ` class MyElement extends HTMLElement { }; @@ -34,3 +34,24 @@ tsTest("'no-missing-element-type-definition' reports no diagnostic when element hasNoDiagnostics(t, diagnostics); }); + +tsTest("'no-missing-element-type-definition' reports no diagnostic when element is in HTMLElementTagNameMap using class property", t => { + const { diagnostics } = getDiagnostics( + ` + class MyElement extends HTMLElement { + static readonly TAG_NAME = "my-element" + }; + customElements.define(MyElement.TAG_NAME, MyElement) + declare global { + interface HTMLElementTagNameMap { + [MyElement.TAG_NAME]: MyElement + } + } + `, + { + rules: { "no-missing-element-type-definition": true } + } + ); + + hasNoDiagnostics(t, diagnostics); +});