fix(deps): Bump dependencies and migrate test fixtures to ts_web
This commit is contained in:
@@ -1,44 +0,0 @@
|
||||
// Test file to verify decorator functionality
|
||||
function sealed(constructor: Function) {
|
||||
Object.seal(constructor);
|
||||
Object.seal(constructor.prototype);
|
||||
}
|
||||
|
||||
@sealed
|
||||
class TestClass {
|
||||
name = 'test';
|
||||
|
||||
modify() {
|
||||
this.name = 'modified';
|
||||
}
|
||||
}
|
||||
|
||||
// Test that the class is sealed
|
||||
const instance = new TestClass();
|
||||
console.log('Initial name:', instance.name);
|
||||
|
||||
// This should work (modifying existing property)
|
||||
instance.modify();
|
||||
console.log('Modified name:', instance.name);
|
||||
|
||||
// This should fail silently in non-strict mode or throw in strict mode
|
||||
try {
|
||||
(instance as any).newProperty = 'should not work';
|
||||
console.log('Adding new property:', (instance as any).newProperty);
|
||||
} catch (e) {
|
||||
console.log('Error adding property (expected):', e.message);
|
||||
}
|
||||
|
||||
// Test that we can't add to prototype
|
||||
try {
|
||||
(TestClass.prototype as any).newMethod = function () {};
|
||||
console.log('Prototype is NOT sealed (unexpected)');
|
||||
} catch (e) {
|
||||
console.log('Prototype is sealed (expected)');
|
||||
}
|
||||
|
||||
console.log('Is TestClass sealed?', Object.isSealed(TestClass));
|
||||
console.log(
|
||||
'Is TestClass.prototype sealed?',
|
||||
Object.isSealed(TestClass.prototype),
|
||||
);
|
||||
36
test/ts_web/fixture-decorators.ts
Normal file
36
test/ts_web/fixture-decorators.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
// Test file to verify decorator functionality
|
||||
const decoratedClasses: Function[] = [];
|
||||
|
||||
function trackClass(constructor: Function) {
|
||||
decoratedClasses.push(constructor);
|
||||
return constructor;
|
||||
}
|
||||
|
||||
function logMethod(_target: any, context: ClassMethodDecoratorContext) {
|
||||
const methodName = String(context.name);
|
||||
return function (this: any, ...args: any[]) {
|
||||
console.log(`Calling method: ${methodName}`);
|
||||
return (_target as Function).apply(this, args);
|
||||
};
|
||||
}
|
||||
|
||||
@trackClass
|
||||
class TestClass {
|
||||
name = 'test';
|
||||
|
||||
@logMethod
|
||||
modify() {
|
||||
this.name = 'modified';
|
||||
}
|
||||
}
|
||||
|
||||
// Test that the class decorator worked
|
||||
const instance = new TestClass();
|
||||
console.log('Initial name:', instance.name);
|
||||
console.log('Class was decorated:', decoratedClasses.includes(TestClass));
|
||||
|
||||
// Test that the method decorator worked
|
||||
instance.modify();
|
||||
console.log('Modified name:', instance.name);
|
||||
|
||||
console.log('Decorator test completed successfully!');
|
||||
Reference in New Issue
Block a user