feat: 更新命令名称为dpml-prompt,保持PromptX品牌名称

This commit is contained in:
sean
2025-05-31 18:59:25 +08:00
parent 0bdb5e865b
commit 0466cd3289
44 changed files with 3138 additions and 3127 deletions

View File

@ -3,44 +3,44 @@
*/
// 设置测试超时时间
jest.setTimeout(30000);
jest.setTimeout(30000)
// 全局变量设置
global.TEST_ENV = 'test';
global.TEST_ENV = 'test'
// 模拟console.log以减少测试输出噪音
const originalConsoleLog = console.log;
const originalConsoleWarn = console.warn;
const originalConsoleError = console.error;
const originalConsoleLog = console.log
const originalConsoleWarn = console.warn
const originalConsoleError = console.error
// 在测试环境中静默一些不必要的日志
if (process.env.NODE_ENV === 'test') {
console.log = (...args) => {
// 只有在明确需要时才输出
if (args.some(arg => typeof arg === 'string' && arg.includes('TEST_OUTPUT'))) {
originalConsoleLog(...args);
originalConsoleLog(...args)
}
};
}
console.warn = (...args) => {
// 保留警告信息
if (args.some(arg => typeof arg === 'string' && arg.includes('TEST_WARN'))) {
originalConsoleWarn(...args);
originalConsoleWarn(...args)
}
};
}
console.error = (...args) => {
// 保留错误信息
originalConsoleError(...args);
};
originalConsoleError(...args)
}
}
// 测试结束后恢复console
afterAll(() => {
console.log = originalConsoleLog;
console.warn = originalConsoleWarn;
console.error = originalConsoleError;
});
console.log = originalConsoleLog
console.warn = originalConsoleWarn
console.error = originalConsoleError
})
// 全局测试工具函数
global.testUtils = {
@ -49,15 +49,15 @@ global.testUtils = {
* @param {number} ms - 毫秒数
*/
sleep: (ms) => new Promise(resolve => setTimeout(resolve, ms)),
/**
* 创建延迟Promise
* @param {any} value - 返回值
* @param {number} delay - 延迟时间
*/
delayed: (value, delay = 100) =>
delayed: (value, delay = 100) =>
new Promise(resolve => setTimeout(() => resolve(value), delay)),
/**
* 创建拒绝的Promise
* @param {any} error - 错误对象
@ -65,59 +65,59 @@ global.testUtils = {
*/
delayedReject: (error, delay = 100) =>
new Promise((_, reject) => setTimeout(() => reject(error), delay))
};
}
// 全局断言扩展
expect.extend({
/**
* 检查是否为有效的DPML资源引用
*/
toBeValidDpmlReference(received) {
const dpmlPattern = /^@[!?]?[a-zA-Z][a-zA-Z0-9_-]*:\/\/.+/;
const pass = typeof received === 'string' && dpmlPattern.test(received);
toBeValidDpmlReference (received) {
const dpmlPattern = /^@[!?]?[a-zA-Z][a-zA-Z0-9_-]*:\/\/.+/
const pass = typeof received === 'string' && dpmlPattern.test(received)
if (pass) {
return {
message: () => `expected ${received} not to be a valid DPML reference`,
pass: true
};
}
} else {
return {
message: () => `expected ${received} to be a valid DPML reference`,
pass: false
};
}
}
},
/**
* 检查对象是否包含必需的属性
*/
toHaveRequiredProperties(received, properties) {
const missingProps = properties.filter(prop => !(prop in received));
const pass = missingProps.length === 0;
toHaveRequiredProperties (received, properties) {
const missingProps = properties.filter(prop => !(prop in received))
const pass = missingProps.length === 0
if (pass) {
return {
message: () => `expected object not to have properties ${properties.join(', ')}`,
pass: true
};
}
} else {
return {
message: () => `expected object to have properties ${missingProps.join(', ')}`,
pass: false
};
}
}
}
});
})
// 处理未捕获的Promise拒绝
process.on('unhandledRejection', (reason, promise) => {
console.error('Unhandled Rejection at:', promise, 'reason:', reason);
});
console.error('Unhandled Rejection at:', promise, 'reason:', reason)
})
// 处理未捕获的异常
process.on('uncaughtException', (error) => {
console.error('Uncaught Exception:', error);
});
console.error('Uncaught Exception:', error)
})
console.log('🧪 Jest测试环境已初始化');
console.log('🧪 Jest测试环境已初始化')