Skip to content

Commit e359caa

Browse files
authored
Merge branch 'main' into add-tag-observer
2 parents 3b04a5c + 71b8700 commit e359caa

3 files changed

Lines changed: 8 additions & 6 deletions

File tree

src/ability.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export const createAbility = <TExtend, TClass extends CustomElementClass>(
99
const markers = abilityMarkers.get(Class)
1010
if (markers?.has(decorate as Decorator)) return Class as unknown as TExtend
1111
const NewClass = decorate(Class) as TExtend
12+
Object.defineProperty(NewClass, 'name', {value: Class.name})
1213
const newMarkers = new Set(markers)
1314
newMarkers.add(decorate as Decorator)
1415
abilityMarkers.set(NewClass as unknown as CustomElementClass, newMarkers)

src/controllable.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,6 @@ const internalsCalled = new WeakSet()
2020
export const controllable = createAbility(
2121
<T extends CustomElementClass>(Class: T): T & ControllableClass =>
2222
class extends Class {
23-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
24-
// @ts-ignore TypeScript doesn't like assigning static name
25-
static get name() {
26-
return Class.name
27-
}
28-
2923
// TS mandates Constructors that get mixins have `...args: any[]`
3024
// eslint-disable-next-line @typescript-eslint/no-explicit-any
3125
constructor(...args: any[]) {

test/ability.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,13 @@ describe('ability', () => {
6767
expect(DElement).to.have.property('prototype').instanceof(Element)
6868
})
6969

70+
it('retains original class name', () => {
71+
const DElement = fakeable(Element)
72+
const D2Element = otherfakeable(Element)
73+
expect(DElement).to.have.property('name', 'Element')
74+
expect(D2Element).to.have.property('name', 'Element')
75+
})
76+
7077
it('can be used in decorator position', async () => {
7178
@fakeable
7279
class DElement extends HTMLElement {}

0 commit comments

Comments
 (0)