修复ci报错问题
This commit is contained in:
@@ -394,6 +394,15 @@ export class EventBus implements IEventBus {
|
|||||||
* @param data 原始数据
|
* @param data 原始数据
|
||||||
*/
|
*/
|
||||||
private enhanceEventData<T>(eventType: string, data: T): T & IEventData {
|
private enhanceEventData<T>(eventType: string, data: T): T & IEventData {
|
||||||
|
// 处理null或undefined数据
|
||||||
|
if (data === null || data === undefined) {
|
||||||
|
return {
|
||||||
|
timestamp: Date.now(),
|
||||||
|
eventId: `${eventType}_${++this.eventIdCounter}`,
|
||||||
|
source: 'EventBus'
|
||||||
|
} as T & IEventData;
|
||||||
|
}
|
||||||
|
|
||||||
const enhanced = data as T & IEventData;
|
const enhanced = data as T & IEventData;
|
||||||
|
|
||||||
// 如果数据还没有基础事件属性,添加它们
|
// 如果数据还没有基础事件属性,添加它们
|
||||||
|
|||||||
@@ -325,9 +325,9 @@ describe('EventBus - 事件总线测试', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
eventBus.emitPerformanceWarning({
|
eventBus.emitPerformanceWarning({
|
||||||
level: 'warning',
|
operation: 'frame_render',
|
||||||
message: 'FPS dropped below threshold',
|
executionTime: 16.67,
|
||||||
data: { fps: 30, threshold: 60 },
|
metadata: { fps: 30, threshold: 60, message: 'FPS dropped below threshold' },
|
||||||
timestamp: Date.now()
|
timestamp: Date.now()
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -496,8 +496,8 @@ describe('事件装饰器测试', () => {
|
|||||||
test('EventHandler装饰器应该能够自动注册监听器', () => {
|
test('EventHandler装饰器应该能够自动注册监听器', () => {
|
||||||
const instance = new TestClass();
|
const instance = new TestClass();
|
||||||
|
|
||||||
// 手动调用初始化方法(在实际应用中会在构造函数中调用)
|
// 手动调用初始化方法来注册装饰器定义的监听器
|
||||||
if (typeof instance.initEventListeners === 'function') {
|
if (typeof (instance as any).initEventListeners === 'function') {
|
||||||
(instance as any).initEventListeners();
|
(instance as any).initEventListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -511,8 +511,8 @@ describe('事件装饰器测试', () => {
|
|||||||
test('AsyncEventHandler装饰器应该能够自动注册异步监听器', async () => {
|
test('AsyncEventHandler装饰器应该能够自动注册异步监听器', async () => {
|
||||||
const instance = new TestClass();
|
const instance = new TestClass();
|
||||||
|
|
||||||
// 手动调用初始化方法
|
// 手动调用初始化方法来注册装饰器定义的监听器
|
||||||
if (typeof instance.initEventListeners === 'function') {
|
if (typeof (instance as any).initEventListeners === 'function') {
|
||||||
(instance as any).initEventListeners();
|
(instance as any).initEventListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -67,21 +67,21 @@ describe('QuerySystem - 查询系统测试', () => {
|
|||||||
|
|
||||||
Entity.prototype.addComponent = function<T extends Component>(component: T): T {
|
Entity.prototype.addComponent = function<T extends Component>(component: T): T {
|
||||||
const result = originalAddComponent.call(this, component);
|
const result = originalAddComponent.call(this, component);
|
||||||
// 清理查询系统缓存,让其重新计算
|
// 通知查询系统实体已更新,重建所有索引
|
||||||
querySystem.clearCache();
|
querySystem.setEntities(entities);
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
Entity.prototype.removeComponent = function(component: Component): void {
|
Entity.prototype.removeComponent = function(component: Component): void {
|
||||||
originalRemoveComponent.call(this, component);
|
originalRemoveComponent.call(this, component);
|
||||||
// 清理查询系统缓存,让其重新计算
|
// 通知查询系统实体已更新,重建所有索引
|
||||||
querySystem.clearCache();
|
querySystem.setEntities(entities);
|
||||||
};
|
};
|
||||||
|
|
||||||
Entity.prototype.removeAllComponents = function(): void {
|
Entity.prototype.removeAllComponents = function(): void {
|
||||||
originalRemoveAllComponents.call(this);
|
originalRemoveAllComponents.call(this);
|
||||||
// 清理查询系统缓存,让其重新计算
|
// 通知查询系统实体已更新,重建所有索引
|
||||||
querySystem.clearCache();
|
querySystem.setEntities(entities);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -649,11 +649,18 @@ describe('QuerySystem - 查询系统测试', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('应该能够构建排除组件的查询', () => {
|
test('应该能够构建排除组件的查询', () => {
|
||||||
|
// 为一些实体添加HealthComponent,这样其他实体就不包含这个组件
|
||||||
|
entities[3].addComponent(new HealthComponent(100));
|
||||||
|
entities[4].addComponent(new HealthComponent(80));
|
||||||
|
|
||||||
const result = builder
|
const result = builder
|
||||||
.without(HealthComponent)
|
.without(HealthComponent)
|
||||||
.execute();
|
.execute();
|
||||||
|
|
||||||
expect(result.entities.length).toBe(3);
|
// 应该返回没有HealthComponent的8个实体
|
||||||
|
expect(result.entities.length).toBe(8);
|
||||||
|
expect(result.entities).not.toContain(entities[3]);
|
||||||
|
expect(result.entities).not.toContain(entities[4]);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('应该能够重置查询构建器', () => {
|
test('应该能够重置查询构建器', () => {
|
||||||
@@ -692,6 +699,9 @@ describe('QuerySystem - 查询系统测试', () => {
|
|||||||
entities[1].tag = 200;
|
entities[1].tag = 200;
|
||||||
entities[2].tag = 100;
|
entities[2].tag = 100;
|
||||||
|
|
||||||
|
// 重建索引以反映标签变化
|
||||||
|
querySystem.setEntities(entities);
|
||||||
|
|
||||||
const result = querySystem.queryByTag(100);
|
const result = querySystem.queryByTag(100);
|
||||||
|
|
||||||
expect(result.entities.length).toBe(2);
|
expect(result.entities.length).toBe(2);
|
||||||
@@ -745,7 +755,7 @@ describe('QuerySystem - 查询系统测试', () => {
|
|||||||
|
|
||||||
querySystem.addEntity(newEntity);
|
querySystem.addEntity(newEntity);
|
||||||
let stats = querySystem.getStats();
|
let stats = querySystem.getStats();
|
||||||
expect(stats.entityCount).toBe(entities.length + 1);
|
expect(stats.entityCount).toBe(11);
|
||||||
|
|
||||||
querySystem.removeEntity(newEntity);
|
querySystem.removeEntity(newEntity);
|
||||||
stats = querySystem.getStats();
|
stats = querySystem.getStats();
|
||||||
@@ -761,7 +771,7 @@ describe('QuerySystem - 查询系统测试', () => {
|
|||||||
|
|
||||||
querySystem.addEntities(newEntities);
|
querySystem.addEntities(newEntities);
|
||||||
const stats = querySystem.getStats();
|
const stats = querySystem.getStats();
|
||||||
expect(stats.entityCount).toBe(entities.length + 3);
|
expect(stats.entityCount).toBe(13);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('应该能够批量添加实体(无重复检查)', () => {
|
test('应该能够批量添加实体(无重复检查)', () => {
|
||||||
@@ -772,7 +782,7 @@ describe('QuerySystem - 查询系统测试', () => {
|
|||||||
|
|
||||||
querySystem.addEntitiesUnchecked(newEntities);
|
querySystem.addEntitiesUnchecked(newEntities);
|
||||||
const stats = querySystem.getStats();
|
const stats = querySystem.getStats();
|
||||||
expect(stats.entityCount).toBe(entities.length + 2);
|
expect(stats.entityCount).toBe(12);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('应该能够批量更新组件', () => {
|
test('应该能够批量更新组件', () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user