diff --git a/src/element/custom-element.js b/src/element/custom-element.js index 7e041344..2d854efe 100644 --- a/src/element/custom-element.js +++ b/src/element/custom-element.js @@ -34,7 +34,7 @@ export const c = (component, base) => { const { props, styles, name } = component; - const className = name[0].toUpperCase() + name.slice(1); + const className = (name[0] || "").toUpperCase() + name.slice(1); /** * @todo Discover a more aesthetic solution at the type level * TS tries to set local class rules, these should be ignored diff --git a/src/tests/element.test.js b/src/tests/element.test.js index 67648cae..5f3c7368 100644 --- a/src/tests/element.test.js +++ b/src/tests/element.test.js @@ -13,6 +13,16 @@ export function customElementScope(component, autoScope = true) { } describe("src/element", () => { + it("name", () => { + function myElement() {} + + myElement.props = { + value: Number, + }; + + expect(c(myElement).name).to.equal("MyElement"); + }); + it("watch update", (done) => { function a() {}