From 072d03a4b59e2e2ee8103a2cd74057282cc17cbe Mon Sep 17 00:00:00 2001 From: Jack Robards Date: Mon, 20 Jan 2025 03:20:47 -0600 Subject: [PATCH] chore: Add test case for setting attribute name in @property decorator --- .../src/test/indexer/index-entries.ts | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/packages/lit-analyzer/src/test/indexer/index-entries.ts b/packages/lit-analyzer/src/test/indexer/index-entries.ts index 24693adb..0489c7ae 100644 --- a/packages/lit-analyzer/src/test/indexer/index-entries.ts +++ b/packages/lit-analyzer/src/test/indexer/index-entries.ts @@ -571,6 +571,40 @@ tsTest("Attribute references can reference properties defined in `observedAttrib }); }); +tsTest("Attribute references can reference properties defined with a @property decorator", t => { + const { indexEntries, sourceFile } = getIndexEntries([ + { + fileName: "main.ts", + entry: true, + text: ` + class SomeElement extends HTMLElement { + @property({ attribute: "some-attr") someAttr: string; + } + customElements.define('some-element', SomeElement); + declare global { + interface HTMLElementTagNameMap { + 'some-element': SomeElement; + } + } + const html = x => x; + html\`\`; + ` + } + ]); + + const entries = Array.from(indexEntries).filter(entry => entry.kind === "ATTRIBUTE-REFERENCE"); + t.is(entries.length, 1); + + assertIsAttrRefTargetingClass({ + t, + entry: entries[0], + name: "some-attr", + kind: HtmlNodeAttrKind.ATTRIBUTE, + sourceFile, + className: "SomeElement" + }); +}); + tsTest("Boolean attribute references have the right kind.", t => { const { indexEntries, sourceFile } = getIndexEntries([ {